毎月読んだ本のデータベースをローカル環境のWPで作っているのですが、Amazon の星評価レビューのように視覚的な評価があると、後で見たときに参考になるなと思っていました。数が少ないうちは手打ちで「★★★☆☆」のような感じでやってたのですけれど、良いプラグインが見つかったので、その使い方とテーマでの設定をメモ。
プラグインの作者さんは日本のかたらしく、公式サイトでの説明もわかりやすいです。
「Shortcode Star Rating」
- ショートコードに数字を入れるだけ
- 星の色も変更可能
- 0.5区切りで星半分も表示
- カスタムフィールドと合わせて使えば色んな所に表示可能
このプラグインだと、カスタムフィールドにショートコードを書き込めば、投稿記事以外にも(サイドバーの最近の記事一覧の下とか、トップページ記事一覧のタイトルしたとか)簡単に表示できます。
感謝。
今回参考にしたサイト
ショートコードで星が付け放題なWordPressプラグインを公開しました
http://www.modshrink.com/2014/03/26/215204
WPループの基本
http://www.webcyou.com/?p=3297
レビュー記事を分かり易く!星評価をWordPressに実装するなら「Shortcode Star Rating」プラグインがおすすめ
http://room9.jp/2014/04/03/070000/
WordPressのカスタムフィールドでショートコードを使う
http://kachibito.net/wordpress/using-shortcode-with-cf.html
インストール
ダッシュボード > プラグイン > 新規追加で “Shortcode Star Rating” を検索
最終更新:2年前となっていますが バージョン4.5.2 で動作します。
(WP3.8 以下だと動作しません)
設定
ダッシュボード > 設定 > Shortcode Star Rating
設定の中はいたってシンプルで、星の色とサイズが指定できます。
使い方1 投稿記事の中に表示する
投稿記事の作成時に、ビジュアルではなくテキストで作成すると
[Star Rating] というボタンが追加されています。
ボタンを押すと
上記のようなショートコードが入力されます。
ここに星の数を記入して、例えば
と記入すれば・・・こんな感じで表示されます。
星の数は5段階で0.5刻みに指定できます。
テーマもいじらず、本文の中にショートコードを書き込めば表示できるので、これが一番お手軽です。
使い方2 テーマ内の好きな場所に表示する
Shortcode Star Rating 投稿記事の本文内でも使用できますが、テーマの中(ループ内)の好きな場所に設置して表示することができます。
<?php echo apply_filters('the_content', get_post_meta($post->ID, 'star', true)); //Shortcode Star Rating ?>
このコードをテンプレート内に記述することで、カスタムフィールドで呼び出すことができます。
(後でわからなくなるので //Shortcode Star Right とコメントを入れてます)
まずはテーマ内に設置します。
無料テーマ Simplicity2.0 の中での使用例
表示する場所:シングルページのタイトル下
<pre class="lang:default mark:7 decode:true "> <header> <h1 class="entry-title"> <?php if ( !is_single() ) echo '<a href="'.get_permalink().'">'; //投稿ページ以外ではタイトルにリンクを貼る?> <?php the_title(); //投稿のタイトル?> <?php if ( !is_single() ) echo '</a>'; //投稿ページ以外ではタイトルにリンクを貼る?> </h1> <?php echo apply_filters('the_content', get_post_meta($post->ID, 'star', true)); //Shortcode Star Rating ?> </pre>
</h1>で検索して18行目辺りに出てくる。
表示する場所::本文の一番最後
<pre class="lang:default mark:8 decode:true"> <div id="the-content" class="entry-content"> <?php //記事本文の表示 the_content( get_theme_text_read_more() ); //デフォルト:続きを読む?> </div> <footer> <?php if ( is_single() ) get_template_part('pager-page-links');//ページリンクのページャー?> <?php echo apply_filters('the_content', get_post_meta($post->ID, 'star', true)); //Shortcode Star Rating ?> <?php //投稿本文下ウイジェット if ( is_single() && is_active_sidebar( 'widget-under-article' ) ): ?> <?php dynamic_sidebar( 'widget-under-article' ); ?> <?php endif; ?></pre>
<div id=”the-content” で検索してくると70行目辺に出てくる。
表示する場所:トップページのエントリーカード
ダッシュボード > カスタマイズ > レイアウト(全体・リスト)> 一覧リストのスタイル
で設定できるトップページの記事リストの中に星を表示します。
<?php //エントリーカードのコンテンツ部分を呼び出す get_template_part('entry-card-content') ?> <?php echo apply_filters('the_content', get_post_meta($post->ID, 'star', true)); //Shortcode Star Rating ?> </article>
ファイルの一番最後の部分にある </article> の上に追加。
一覧のスタイルを変更してもちゃんと表示される。
表示する場所:関連記事の一覧
関連記事は「タイトル」「抜粋」「続き」の順で並んでいるけれど、今回は「続き」の上に星を入れてみる。
- タイトル
- 抜粋
- 星 (ココ)
- 続き
</header> <p class="related-entry-snippet"> <?php echo get_the_custom_excerpt( $post->post_content, get_excerpt_length() ) . ''; //カスタマイズで指定した文字の長さだけ本文抜粋?></p> <?php echo apply_filters('the_content', get_post_meta($post->ID, 'star', true)); //Shortcode Star Rating ?> <?php if ( get_theme_text_read_entry() ): //「記事を読む」のようなテキストが設定されている時 ?> <footer>
26行目辺り </header> と <footer> にはさまれている所に追加。
表示する場所:サイドバーの新着記事のタイトル下
<div class="new-entry-content"> <a href="<?php the_permalink(); ?>" class="new-entry-title" title="<?php the_title(); ?>"><?php the_title();?></a> </div><!-- /.new-entry-content --> <?php echo apply_filters('the_content', get_post_meta($post->ID, 'star', true)); //Shortcode Star Rating ?> </li><!-- /.new-entry -->
リスト終了 </li> の真上29行目辺りに追加。
使い方:カスタムフィールドを使って呼び出す
テーマに細工をしても呼び出さないことには使えません。カスタムフィールドでショートコードを登録してテーマに反映させます。
投稿画面にあるカスタムフィールドに「名前」を入れる
名前:star(任意の名前)
その横にショートコードを挿入
ここで好きな数字1~5を書き込む
もし、投稿画面でカスタムフィールドが表示されていない場合は、投稿画面上にある
[表示オプション] > カスタムフィールド
にチェックを入れること
これで全て完了。