Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我如何构造wordpress插件,从自定义数据库中提取数据以显示为帖子?_Wordpress - Fatal编程技术网

我如何构造wordpress插件,从自定义数据库中提取数据以显示为帖子?

我如何构造wordpress插件,从自定义数据库中提取数据以显示为帖子?,wordpress,Wordpress,我有一个结构化数据数据库,我想在wordpress中显示为帖子。我可以将它们导入wordpress数据库,但之后我必须将数据镜像与主数据库保持同步,这会增加各种复杂度 我还没有找到正确的操作钩子来覆盖从中提取它们的db,自定义post类型功能听起来像我想要的,但似乎只有在从wordpress数据库提取时才有意义 我可以使用自定义模板标签来显示我的数据,但这些帖子仍然会从wordpress数据库中提取 我查看了wordpress的一些房地产列表插件和体育团队管理插件,因为这似乎是一个类似的问题,尽

我有一个结构化数据数据库,我想在wordpress中显示为帖子。我可以将它们导入wordpress数据库,但之后我必须将数据镜像与主数据库保持同步,这会增加各种复杂度

我还没有找到正确的操作钩子来覆盖从中提取它们的db,自定义post类型功能听起来像我想要的,但似乎只有在从wordpress数据库提取时才有意义

我可以使用自定义模板标签来显示我的数据,但这些帖子仍然会从wordpress数据库中提取

我查看了wordpress的一些房地产列表插件和体育团队管理插件,因为这似乎是一个类似的问题,尽管我没有处理房地产列表或体育团队,但它们仍然将信息存储在wordpress数据库中

除了分岔wordpress来搞乱post和查询类(看起来像是兔子洞)之外,我不想往下说,我的选择是什么?解决同样问题的其他插件也会很有用

我不熟悉wordpress开发,但不熟悉web开发


编辑:如果有必要或使事情更简单,我可以接受但不理想将自定义数据放在与wordpress相同的数据库中。

您可以在wordpress中创建表,并与其他数据库表一样与这些表交互。WP附带了许多有用的功能,可以节省您的时间。要安装初始表,您需要使用
dbdelta
功能。《法典》以此为例:

global $jal_db_version;
$jal_db_version = "1.0";

function jal_install() {
   global $jal_db_version;

   $table_name = $wpdb->prefix . "liveshoutbox";

   $sql = "CREATE TABLE " . $table_name . " (
      id mediumint(9) NOT NULL AUTO_INCREMENT,
      time datetime DEFAULT '0000-00-00 00:00:00' NOT NULL,
      name tinytext NOT NULL,
      text text NOT NULL,
      url VARCHAR(55) DEFAULT '' NOT NULL,
      UNIQUE KEY id (id)
    );";

   require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
   dbDelta($sql);

   add_option("jal_db_version", $jal_db_version);
}

function jal_install_data() {
      $welcome_name = "Mr. Wordpress";
      $welcome_text = "Congratulations, you just completed the installation!";

      $rows_affected = $wpdb->insert( $table_name, array( 'time' => current_time('mysql'), 'name' => $welcome_name, 'text' => $welcome_text ) );
}
更多信息,请参阅

接下来,对于任何CRUD函数,您都需要使用WP_查询类。该法典在解释这些函数如何工作方面做得非常出色:


如果可能的话,我建议您开发带有自定义帖子类型功能的插件。如果你这样做,它只会更好地与可湿性粉剂,其他插件将与它更好地工作,它将更容易让用户了解如何操纵你的插件。法典中有一个很好的文档,它解决了在WP数据库中不必要地创建更多表的问题,但我似乎找不到它。也许其他人可以给你指点一下。

我不会用这个插件创建任何表,我只是接受了这样一个事实,wordpress数据库将不得不在我的生产数据库中使用前缀。感谢+1自定义帖子类型,看起来这就是我需要做的,这样其他WP功能和插件就可以使用它了。CRUD不会成为问题,因为此数据是在wordpress之外管理的。@Freshawk-很抱歉误解。我仍然有兴趣更好地理解这个问题,并讨论一些可能性。因此,我有一个房地产清单数据库,CRUD操作都由现有系统(“经理”)在wordpress之外管理。我想做的是用wordpress以博客格式显示这些列表。如果wordpress的搜索/标记/等功能能为这些房地产“帖子”工作,那就太棒了。我无法将数据导入wordpress,因为在管理器中进行CRUD操作时,它们需要立即反映在wordpress中,我不想处理这种难看的同步问题。我希望wordpress数据库与现有的管理器数据库分开,但我非常确定这是不可能的,或者是过度的复杂的。