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 に答える