投稿の表示回数を設定し、その表示回数を超えた閲覧があった場合には、その投稿の内容を表示せず、表示回数が上回ったとのメッセージを表示する。
例えば、ある投稿の閲覧が10回あれば、それ以後、その投稿を表示させない。とかの場合に利用できます。
どんなシチュエーションで必要になるのかわかりません。
カスタマイズの概要
- カスタムページテンプレートとカスタムフィールドを利用します。
- 通常、投稿の表示には、single.php が利用されます。しかし、一部の投稿のみに今回のカスタマイズを適用するため、カスタムページテンプレートを設定します。注:ワードプレス・バージョン 4.7 より、今まで固定ページのみに利用可能だったカスタムページテンプレート設定が、投稿ページにも可能となりました。
- 表示回数をカスタムフィールドに記憶させます。カスタムページテンプレート内で、所定の表示回数以下とそれ以上で、異なった表示内容になるように設定します。表示回数をカスタムフィールドに記憶させる詳細は下の投稿を参照してください。
「カスタムフィールド」を利用することにより、プラグインを使用せず、そして、簡単に、閲覧回数が多い(人気の高い)投...
カスタマイズ手順
- 新規で作成するファイルは次のとおり。
- 「Twentysevventeen-child」子テーマ内での設定となります。(子テーマ作成方法は、「WordPress Codex 日本語版」→「デザインとレイアウト」→「子テーマ」を参照してください。)
- フォルダが存在しない場合は、新しく設置してください。
- themes
-
- twentyseventeen-child
-
- template-parts
-
- post
-
- content-secret.php
- template-posts
-
- single-secret.php
- 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 -->
- 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」を選択してください。
注意点
- 投稿記事作成時のプレビュー、もしくは、ご自身での投稿の表示でも、表示回数としてカウントされます。必要に応じて、管理画面投稿ページ下「カスタムフィールド」の数字を変更してください。
- テスト環境で動作を確認してからご利用ください。
- 子テーマ上で実施してください。