2012-02-15 8 views
2

私はもともとカテゴリをパスワードで保護したいと思っていました。少なくとも私はそれがパスワードで保護されることを望んだが、ユーザー名とパスワードのログインが望ましい。私が解決策を見つけるのに何日も失敗したので、私はWordPressの内蔵パスワード保護を使って記事に投稿しました。あなたの投稿をデフォルトでパスワードで保護する

私は電子メールで投稿し、これらの投稿をパスワードで保護するために、Wordpressにログインして手動でパスワードで保護されたパスワードを選択し、ダッシュボードにパスワードを入力する必要があります。

特定のカテゴリに表示されるすべての投稿を、デフォルトで同じパスワードでパスワードで保護することができますようにしたいと思います。 Wordpressにログインしてパスワードを手動で選択する必要がなくなります。

私は使用する必要がある機能があることを知っていますが、それを実装する方法や場所はわかりません。

答えて

0

this WordPress StackExchange answerに基づく。通常のダッシュボードでのみテストされます。電子メール経由の公開はテストする必要がありますが、この種の投稿ではフックが呼び出されると思います。

add_action('save_post', 'wpse51363_save_post'); 

function wpse51363_save_post($post_id) { 

    //Check it's not an auto save routine 
    if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) 
      return; 

    //Check it's not an auto save routine 
    if (wp_is_post_revision($post_id)) 
      return; 

    //Perform permission checks! For example: 
    if (!current_user_can('edit_post', $post_id)) 
      return; 

    $term_list = wp_get_post_terms(
     $post_id, 
     'category', 
     array('fields' => 'slugs') 
    ); 

    if(in_array ('the-category-slug', $term_list)) 
    { 
     // Unhook this function so it doesn't loop infinitely 
     remove_action('save_post', 'wpse51363_save_post'); 

     // Call wp_update_post update, which calls save_post again. 
     wp_update_post(array( 
      'ID' => $post_id, 
      'post_password' => 'default-password') 
     ); 

     // Re-hook this function 
     add_action('save_post', 'wpse51363_save_post'); 
    } 
} 
0
add_filter('wp_insert_post_data', function($data, $postarr){ 
    if ('book' == $data['post_type'] && 'auto-draft' == $data['post_status']) { 
     $data['post_password'] = wp_generate_password(); 
    } 
    return $data; 
}, '99', 2); 
+0

いくつかの即時の支援を提供することができる、このコードスニペットをいただき、ありがとうございます。適切な説明は、なぜこれが問題の良い解決策であるのかを示すことによって、その教育的価値を大幅に向上させるでしょう(https://meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers)。類似しているが同一ではない質問を持つ将来の読者にとって、より有用なものにする。説明を追加するためにあなたの答えを編集し、どのような制限と前提が適用されるかを示してください。 – basvk

関連する問題