使用WyPiekacz仅对草稿帖子执行条件,忽略挂起和已发布的帖子

时间:2013-05-23 作者:Christine Cooper

我使用WyPiekacz 在创建帖子时为作者设置各种条件,例如检查帖子是否有特征图像或使用了多少标签。它工作得很好。

但是,每次提交帖子进行审查、更新或发布时,都会检查这些条件。我要WyPiekacz只检查条件if the post is in Draft status. 我该怎么做?

我目前遇到的问题是,例如,一个编辑器更改了标记的数量并更新了挂起的帖子,这会使WyPiekacz中设置的标记规则失效,因此帖子会更改回草稿状态,编辑器无法再次访问它。编辑是only allowed to edit pending posts.

1 个回复
SO网友:fuxia

在调用get_option( \'wypiekacz_allow_skip_rules\' ).

当你过滤pre_option_wypiekacz_allow_skip_rules 并返回与FALSE, 它应该尽早停止检查未测试

add_filter(
    \'pre_option_wypiekacz_allow_skip_rules\',
    \'wpse_100503_wypiekacz_for_drafts_only\'
);

function wpse_100503_wypiekacz_for_drafts_only( $bool )
{
    if ( \'draft\' === get_post_status( $GLOBALS[\'post\'] ) )
        return $bool;

    return 0;
}
为了防止post状态重置,类似的操作可能会起作用:

add_filter(
    \'wypiekacz_check_post\',
    \'wpse_100503_wypiekacz_prevent_draft_reset\',
    10,
    4
);

function wpse_100503_wypiekacz_prevent_draft_reset( $errors, $text, $title, $post_data )
{
    if ( empty ( $errors ) )
        return $errors;

    if ( \'pending\' === $post_data->post_status )
        remove_filter( \'query\', array( $GLOBALS[\'wp_wypiekacz\'], \'kill_sql_query\' ) );
}
但是,老实说,插件代码是一团糟。

结束

相关推荐

Delete Term via edit-tags.php

我可能会对此表示不满,但编辑标签上是否有“删除”链接。php页面?注意:不是WP列表,而是实际页面,您可以在其中单独查看术语。似乎他们在这里添加了选项:https://core.trac.wordpress.org/ticket/9777#no1_更新看起来我看错了WP文件。单个术语页面位于:wp admin/edit tag form。php,并且没有提到任何“删除”。知道了这一点,是否可以在此页面上添加一个删除按钮,或在WP列表中创建一个“删除”列。我这样尝试过,但收到了列的“未定义变量‘tag’”。