首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果我设置了post id,WordPress wp_revisions_to_keep过滤器不起作用

如果我设置了post id,WordPress wp_revisions_to_keep过滤器不起作用
EN

Stack Overflow用户
提问于 2021-02-12 00:38:28
回答 1查看 46关注 0票数 0

我想将30天内未修改的帖子的修订次数限制为2次。

我有以下功能:

代码语言:javascript
复制
add_filter( 'wp_revisions_to_keep', 'limit_revisions', 10, 2 );

function limit_revisions( $num, $post ) {

    $num = 2;
    if ( get_the_modified_time( 'U', $post->ID ) + MONTH_IN_SECONDS >= current_time( 'U' ) ) {
        $num = -1;
    }

    return $num;
}

它返回一个适当的$num值,但是如果我更新一个旧的帖子,它不会删除旧的修订。

如果我从get_the_modified_time函数中删除$post->ID,它会正常工作,但我不明白为什么。将id设置为此函数的参数会导致过滤器无法工作,这有什么错?

EN

回答 1

Stack Overflow用户

发布于 2021-02-12 04:02:43

正如用户Fresz所指出的,您不需要将$num传递给limit_revisions函数。

如果您查看wp_revisions_to_keephttps://developer.wordpress.org/reference/functions/wp的文档,您会注意到它只有一个参数:post

在您当前的设置中,您有limit_revisions( $num, $post ) -这意味着$num实际上是post -因为您首先传递它。

您可以将您的代码重构为:

代码语言:javascript
复制
add_filter( 'wp_revisions_to_keep', 'limit_revisions');
// Pass only post
function limit_revisions( $post ) {
    $num = 2;

    if ( get_the_modified_time( 'U', $post->ID ) + MONTH_IN_SECONDS >= current_time( 'U' ) ) {
        $num = -1;
    }

    return $num;
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66158888

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档