我有一个结构化数据数据库,我想在wordpress中显示为帖子。我可以将它们导入wordpress数据库,但是我必须保持数据镜像与主数据库同步,这会增加各种复杂性。
我无法找到正确的操作挂钩来覆盖它们被拉出的数据库,并且自定义的帖子类型功能听起来像我想要的但似乎只有在从wordpress数据库中提取时才有意义。
我可以使用自定义模板标签来显示我的数据,但这些帖子仍会从wordpress db中提取。
我看过一些房地产上市插件和运动团队管理插件,因为这似乎是一个类似的问题,即使我不处理房地产列表或运动队,但他们仍然存储信息wordpress db。
除了分叉wordpress弄乱帖子和查询类似乎兔子洞我不想下去有什么我的选择?解决同样问题的其他插件也很有用。
我是wordpress开发的新手,但不是网络开发。
编辑:如果有必要或使事情更简单,我可以接受但不理想将自定义数据放在与wordpress相同的数据库中。
答案 0 :(得分:2)
您可以在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 ) );
}
有关详情,请参阅http://codex.wordpress.org/Creating_Tables_with_Plugins。
接下来,对于任何CRUD函数,您都希望使用WP_Query类。该手抄本在解释每个功能如何运作方面做得非常出色:http://codex.wordpress.org/Function_Reference/WP_Query。
如果可能的话,我建议使用自定义帖子类型功能开发您的插件。如果你这样做,它将更好地与WP一起工作,其他插件将更好地使用它,并且用户将更容易理解如何操纵你的插件。在codex中有一个很棒的文档,它解决了在WP数据库中不必要地创建更多表的问题,但我似乎无法找到它。也许其他人可以指向你。