我想根据自定义字段“播放”更新我的帖子状态(我自己的CPT)。如果播放的是1,我希望发布帖子,但如果播放的自定义字段是0,那么如果我试图发布帖子,帖子也应该是草稿。
有可能吗?
我试图在论坛中搜索,但没有找到有效的。。。也尝试了这里的代码,但不起作用。。。
How to Update post status using meta data in Custom post TYpe
我想根据自定义字段“播放”更新我的帖子状态(我自己的CPT)。如果播放的是1,我希望发布帖子,但如果播放的自定义字段是0,那么如果我试图发布帖子,帖子也应该是草稿。
有可能吗?
我试图在论坛中搜索,但没有找到有效的。。。也尝试了这里的代码,但不起作用。。。
How to Update post status using meta data in Custom post TYpe
你所需要做的就是save_post
钩方法如下:
function change_post_status_based_on_custom_field( $post_id ) {
// If this is just a revision, don\'t do anything.
if ( wp_is_post_revision( $post_id ) )
return;
// Get field value
$value = get_post_meta( $post_id, \'played\', true );
$status = $value ? \'publish\' : \'draft\';
// If status should be different, change it
if ( get_post_status( $post_id ) != $status ) {
// unhook this function so it doesn\'t loop infinitely
remove_action( \'save_post\', \'change_post_status_based_on_custom_field\' );
// update the post, which calls save_post again
wp_update_post( array(
\'ID\' => $post_id,
\'post_status\' => $status
) );
// re-hook this function
add_action( \'save_post\', \'change_post_status_based_on_custom_field\' );
}
}
add_action( \'save_post\', \'change_post_status_based_on_custom_field\' );
在这里粘贴的代码可能相当多,但您的策略应该遵循以下几点:
钩住post\\u保存事件:创建一个已经检查过的静态变量,以防止在此函数中更新post时出现无限递归
一切都好吗<我需要wp-list-table 也要显示custom-fields 在每个custom-post 我有,但我不知道如何做到这一点,在这幅图中,它显示了带有字段的表格:Title, Author and Publication Date: 我想要的是能够选择custom-fields 将出现,例如以下示例Title, Carta, Naipe, Author, and Date of Publication: