我已经用了很长时间了,我找不到办法让它发挥作用。
我正在使用我的主题创建一个简单的主题选项,但将所有选项放到自定义数据库表中。 我想知道$ wpdb-> insert()如何插入所有选项,如add_option()。
这是我的代码 - http://pastebin.com/5xHBs6r2 如果你看看209行*函数stheme_initialize_theme_options()*你会明白我的意思。我还创建了一个函数(* function stheme_default_options()*),它保存默认选项并使用 apply_filters()返回。
我希望有人可以帮我解决这个问题,因为我现在正在努力解决这个问题。
谢谢! 最好的问候。
答案 0 :(得分:1)
考虑使用Options API。它比编写自己的查询简单得多,而且已经内置了。
http://codex.wordpress.org/Options_API
设置,重置和检索存储的选项可以通过3个或4个命令完成,因此它是一个非常漂亮的系统。例如,这个:
add_option('my_option', 'foo');
将在数据库中实例化一个选项,这将更新它:
update_option('my_option', 'foo2');
最后,这将检索它:
$s = get_option('my_option');
如果您使用选项APi,最好坚持命名约定,为您的选项提供自己的前缀。如果你使用太明显的东西,太容易交叉到其他插件等。
答案 1 :(得分:0)
这是一个经典的XY Problem。
不要创建表来执行WordPress已经执行的操作。您甚至将自己置于陷阱中,因为您将无法使用WP默认工具查询数据,并且必须重新发明轮子才能实现它。
您要找的是register_activation_hook
,register_deactivation_hook
和register_uninstall_hook
。
除了卸载钩子之外,我们可以使用文件uninstall.php
和我们的插件在删除插件后清理我们的东西。请参阅WordPress Answers上的this related posts。
PS:在您的代码中,这完全不需要:
add_action( 'init', 'st_register_table', 1 );
您只需使用$wpdb->prefix.'your_table'
来解决自定义表格。