通过插件函数定义WordPress常量?

时间:2019-01-29 作者:Nexus6

我正在开发一个插件,并尝试内置一个选项来禁用后期修订。我已注册设置,并确认复选框正在链接到数据库。选项值为null或1。

我要做的是定义这个常量:define(\'WP_POST_REVISIONS\', false); 仅当选项设置为1时,才能在插件文件中。

如果我将常量直接放入插件函数文件中,它会工作,但如果我尝试在If语句或通过函数使用它,无论我如何尝试,它都不会工作。

我得到的选项值如下:$disable_revisions = get_option(\'disable-revisions\');

以下是我尝试过的:

if ($disable_revisions==1){
    define(\'WP_POST_REVISIONS\', false);
}
我还尝试使用一个单独的函数:

if ($disable_revisions==1){
    add_action(\'admin_init\', \'disable_revs\');
}

function disable_revs(){
    define(\'WP_POST_REVISIONS\', false);
}
我试着将这个动作添加到“wp”、“init”和其他一些动作中,但它们都不起作用。

只有当$disable_revisions = 1?

1 个回复
最合适的回答,由SO网友:Krzysiek Dróżdż 整理而成

我认为您不应该在插件中定义常量。以后很难调试。

IMHO使用wp_revisions_to_keep 过滤器将是更好的解决方案。

因此,您的代码可能如下所示:

add_filter( \'wp_revisions_to_keep\', \'my_revisions_to_keep_based_on_settings\', 10, 2 );

function my_revisions_to_keep_based_on_settings( $num, $post ) {
    // change that according to your needs
    return intval( get_option(\'disable-revisions\') );
}

相关推荐

get_posts custom field

这是一个愚蠢的问题,但我找不到合适的方式问谷歌。所以,如果这是一个重复的问题,很抱歉。我提供了一个带有复选框的自定义字段,用户可以检查是否希望此特定帖子进入主页。因此,在我的主页上,我呼吁所有已激活选中的帖子。我正在为自定义帖子类型CV创建自定义字段:function add_custom_post_meta_box() { add_meta_box( \'custom_post_meta_box\', // $id \'Campos Per