WP-PostViewsプラグインを導入して、各投稿の閲覧数(Views)をウィジェットで表示できるようにしたのだが、トップページに表示されるインデックスや投稿ページ内でもViewsを表示させるべく、テーマをいじってみた。(2016-02-21更新)
子テーマの準備
テーマ自体を修正すると更新時にカスタマイズ分が上書きされてしまうので、子テーマを作ってその中で修正することにする。
現在テーマはbirdTIPSを使用している。ここを参考に子テーマを作成する。
新たに作成した子テーマのディレクトリへfunction.php以外のファイルを丸ごとコピーしておく。
変更箇所のアタリをつける
投稿記事下部のタグを表示している箇所にViewsを表示させてみることにする。
まずはブラウザで投稿ページを表示させた上で「ページのソースを表示」でhtmlを直接表示させてそれらしいところを探す。
タグのキーワードで検索してみると、footerのentry-metaクラスが該当箇所らしい。
webサイトにリモートログインし、WordPressの子テーマディレクトリ上でentry-metaをキーワードにgrep
してみる。
1 2 3 4 |
% grep -n entry-meta * content.php:31: <footer class="entry-meta"> content.php:75: </footer><footer class="entry-meta"> </footer> |
対象箇所はfooterのようだ。content.phpを修正すればよさそう。
Views表示のために追加する内容
Viewsはfooterのタグ表示と同じ行に右寄せで表示させたいので、以下のコードを追加することにした。先ほどのgrep検索でヒットした2箇所が変更対象である。
1 2 3 |
<div style="float:right; "> < ?php echo post_custom('views'); ?> Views</div> |
content.phpファイルのentry-metaクラスの箇所に上記のViews表示用コードを追加する。
変更1:単一記事のみのfooter表示
1 2 3 4 5 6 |
< ?php if( is_single() ): // Only Display for Single ?> <footer class="entry-meta"> <span class="author"><a href="<?php echo get_author_posts_url( get_the_author_meta( 'ID' ) ); ?>">< ?php the_author(); ?></a><span class="category">< ?php the_category(', ') ?></span>< ?php the_tags('<span class="tag">', ', ', '</span>') ?> <div style="float:right; ">< ?php echo post_custom('views'); ?> Views</div> </footer> < ?php endif; ?> |
変更2:デフォルトのfooter表示
1 2 3 4 5 6 7 |
<footer class="entry-meta"> <span class="author"><a href="<?php echo get_author_posts_url( get_the_author_meta( 'ID' ) ); ?>">< ?php the_author(); ?></a></span><spa n class="category">< ?php the_category(', ') ?> <div style="float:right; ">< ?php echo post_custom('views'); ?> Views</div> < ?php if ( ! post_password_required() && ( comments_open() || get_comments_number() ) ) : ?> <span class="comment">< ?php comments_popup_link(__('No Comments', 'birdtips'), __('1 Comment', 'birdtips'), __('% Comments', 'birdtips'), '', __('Comments Closed', 'birdtips') ); ?></span> < ?php endif; ?> </spa></footer> |
content.php変更後のページ表示
上記変更後にページを再表示させたところ、無事Viewsが表示されるようになった。
archives表示へもViews表示を追加
(2016-02-21追記)archives/tag表示やarchives/date表示でも同様にViews表示を追加してみる。同じくcontent.phpの変更で追加ができる。
content.php変更前(Display for Archive部分)
1 2 3 4 5 6 |
< ?php elseif( is_archive() ): // Display for Archive ?> <li><a href="<?php the_permalink() ?>" rel="bookmark"> <span>< ?php the_title(); ?></span> <em>< ?php echo get_post_time( get_option('date_format' ) ); ?></em> </a> </li> |
content.php変更後(Display for Archive部分)
1 2 3 4 5 6 7 8 9 |
< ?php elseif( is_archive() ): // Display for Archive ?> <li><a href="<?php the_permalink() ?>" rel="bookmark"> <span>< ?php the_title(); ?></span> <div style="float:right; width:110px; " // post date with views> <em>< ?php echo post_custom('views'); ?> Views</em> <em>< ?php echo get_post_time( get_option('date_format' ) ); ?></em> </div> </a> </li> |
反映したらViewsが追加されて更新された。