投稿の最大表示回数の設定

投稿の表示回数を設定し、その表示回数を超えた閲覧があった場合には、その投稿の内容を表示せず、表示回数が上回ったとのメッセージを表示する。

例えば、ある投稿の閲覧が10回あれば、それ以後、その投稿を表示させない。とかの場合に利用できます。

どんなシチュエーションで必要になるのかわかりません。

カスタマイズの概要

カスタマイズ手順

  1. 新規で作成するファイルは次のとおり。
    • 「Twentysevventeen-child」子テーマ内での設定となります。(子テーマ作成方法は、「WordPress Codex 日本語版」→「デザインとレイアウト」→「子テーマ」を参照してください。)
    • フォルダが存在しない場合は、新しく設置してください。
    • themes
      • twentyseventeen-child
        • template-parts
          • post
            • content-secret.php
        • template-posts
          • single-secret.php
  2. content-secret.php 作成
    • 設定表示回数を超えた場合に利用します。
    • 「themes」→「twentyseventeen」→「template-parts」→「post」フォルダ内 content.php をコピーし、所定のフォルダ内に、content-secret.php というファイル名でペースト
    • 下記のように entry-content 内を変更
      注:表示する文章は都度変更してください。
    
     <div class="entry-content">
      <?php
       echo '<h3>注意!</h3><p>設定表示回数を超過しました為この投稿の内容は表示できません。</p>';
      ?>
     </div><!-- .entry-content -->
    
    
  3. single-secret.php 作成
    • 表示回数をカウントし、設定表示回数以下の場合は、content.php を呼び出し、超えた場合は、content-secret.php を呼び出します。
    • 下の構文を single-secret.php というファイル名で保存してください。
    • この構文では、最大表示回数10となっています。こちらも適時変更してください。
    
    <?php
    /*
     * Template Name: Secret Post
     * Template Post Type: post
     */
    
    get_header(); ?>
    
    <div class="wrap">
     <div id="primary" class="content-area">
      <main id="main" class="site-main" role="main">
    
       <?php
       /* Start the Loop */
       while ( have_posts() ) :
        the_post();
    
        // obtain view number added by MTA
        if ( "" == get_post_meta(get_the_ID(), 'circulation', 'true')){
         $circulation = 0;
        } else {
         $circulation = get_post_meta(get_the_ID(), 'circulation', 'true');
        }
    				
        $circulation += 1;
    				
        update_post_meta( $post->ID, 'circulation', $circulation );
    
        // Maximum = 10 times
        if ( $circulation <= 10 ){
         get_template_part( 'template-parts/post/content', get_post_format() );
        } else {
         get_template_part( 'template-parts/post/content', 'secret' );
        }
    
       endwhile; // End of the loop.
       ?>
    
      </main><!-- #main -->
     </div><!-- #primary -->
     <?php get_sidebar(); ?>
    </div><!-- .wrap -->
    
    <?php
    get_footer();
    
    

利用方法

  • 投稿の編集画面右下「投稿の属性」で、「Secret Post」を選択してください。

注意点

  • 投稿記事作成時のプレビュー、もしくは、ご自身での投稿の表示でも、表示回数としてカウントされます。必要に応じて、管理画面投稿ページ下「カスタムフィールド」の数字を変更してください。
  • テスト環境で動作を確認してからご利用ください。
  • 子テーマ上で実施してください。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です