2

我尝试实现以下几点:默认情况下,具有自定义帖子类型的帖子应受密码保护

我发现这很好 用 https://wordpress.stackexchange.com/questions/4952/forcing-all-posts-associated-with-a-custom-post-type-to-be-private

但我不希望这些帖子是私人的,所以我碰巧

$post->post_status = 'private';
$post->post_password = 'some_default_password';

$post->post_status = 'published';
$post->post_password = 'some_default_password';

但是没有密码保护

我怎样才能做到这一点?

4

1 回答 1

2

以下代码执行此操作,但仅在创建新帖子 (post_type) 时才有效。

如果我们不检查empty($data['post_name']),这表明正在创建一个新帖子,它会使用密码锁定所有帖子some_default_password

基于此WordPress StackExchange Q&A 的代码。

add_filter( 'wp_insert_post_data' , 'so_13517851_filter_handler' , '99', 2 );

function so_13517851_filter_handler( $data , $postarr ) 
{
    // creating new post and correct post_type
    if( empty( $data['post_name'] ) && 'post' == $postarr['post_type'] )
        $data[ 'post_password' ] = 'some_default_password';

    return $data;
}
于 2012-11-26T19:57:06.440 回答