0

我已经为此工作了很长时间,但我找不到如何使它工作的方法。

我正在用我的主题创建一个简单的主题选项,但将所有选项都放到自定义数据库表中。我想知道 $wpdb->insert() 如何插入 add_option() 之类的所有选项。

这是我的代码 - http://pastebin.com/5xHBs6r2 如果您查看第 209 行 *function stheme_initialize_theme_options()* 您会明白我的意思。我还创建了一个函数 (*function stheme_default_options()*) 保存默认选项并使用apply_filters()返回它。

我希望有人可以帮助我解决这个问题,因为我现在已经为此苦苦挣扎了一个星期。

谢谢!此致。

4

2 回答 2

1

考虑使用选项 API。它比编写自己的查询要简单得多,而且它已经内置了。

http://codex.wordpress.org/Options_API

设置、重置和检索您存储的选项总共可以使用 3 或 4 个命令完成,因此它是一个非常漂亮的系统。例如,这个:

add_option('my_option', 'foo');

将在数据库中实例化一个选项,这将更新它:

update_option('my_option', 'foo2');

最后,这将检索它:

$s = get_option('my_option');

如果您确实使用了 Options APi,最好遵守命名约定,为您的选项设置自己的前缀。如果你使用任何太明显的东西,太容易交叉到其他插件等。

于 2013-10-02T15:42:02.850 回答
0

这是一个经典的XY 问题

不要创建一个表格来做 WordPress 已经做过的事情。您甚至将自己置于一个陷阱中,因为您将无法使用 WP 默认工具查询您的数据,并且必须重新发明轮子来实现它。

您正在寻找的是register_activation_hook,register_deactivation_hookregister_uninstall_hook

除了卸载钩子,我们可以uninstall.php在插件被删除后使用我们的插件文件来清理我们的东西。请参阅WordPress Answers 中的相关帖子


PS:在您的代码中,这是完全不需要的:

add_action( 'init', 'st_register_table', 1 );

您只需使用$wpdb->prefix.'your_table'.

于 2013-10-05T14:05:46.700 回答