お気に入りを追加する WP Favorite Posts プラグイン
新製品情報を RSS で取り込んで WordPress に投稿するサイトを作った。
そうなると、各投稿かつユーザ毎にお気に入りボタンを設置したい。
本来は サマリー みたいに Want It と Have It の様な複数のカテゴリを持たせたかったけど
とりあえずお気に入りだけ実装してみた。
使ったのは WP Favorite Posts プラグイン。設定は以下の様な感じ。明記していないところは規定値。
お気に入り追加リンクを表示する場所 | After post |
お気に入り追加リンクの前に表示するアイコン | No Image |
お気に入りに追加する時 | <i class=”fa fa-heart-o”></i>お気に入りに追加 |
お気に入り追加が完了した時 | Show remove link |
お気に入りから外す時 | <i class=”fa fa-heart”></i>お気に入り |
お気に入りから外れた時 | Show add link |
お気に入りリストをクリアする時 | 全てのお気に入り解除 |
お気に入りリストがクリアされた時 | <p>お気に入りを解除しました。</p> |
お気に入りリストが無い時 | お気に入りがありません。 |
削除リンクの | お気に入り解除 |
お気に入りリストがcookieを使って保存された時 | Cookie が無効です。 |
登録ユーザー以外がお気に入りリストを作成した時のエラーメッセージ | 登録ユーザのみお気に入り登録できます。 |
※ ちなみに、<i class=”fa fa-heart”></i> を使うには font-awesome を適用しておく必要がある。
お気に入り一覧は、固定ページを作って、そこに
1 |
<?php wpfp_list_favorite_posts(); ?> |
と記述。
※ <?php ?> などを使うには、Exec-php プラグインとかを適用しておく必要あり。
そのままだと記事のタイトルがリストで一覧されるだけ。今回はアイキャッチ画像とパーマリンクのみ表示させたかったので
wp-content/plugins/wp-favorite-posts/wpfp-page-template.php を修正。query_posts($qry) までは変更なし。
先ず、ul、li を削って、タイトル文字列の部分にアイキャッチ画像を表示するように修正。お気に入り解除と全解除ボタンをコメントアウト。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
query_posts($qry); // echo "<ul>"; while ( have_posts() ) : the_post(); /* echo "<li><a href='".get_permalink()."' title='". get_the_title() ."'>" . get_the_title() . "</a> "; wpfp_remove_favorite_link(get_the_ID()); echo "</li>"; */ // echo "<li>"; echo "<a href='".get_permalink()."' title='". get_the_title() ."'>" . get_the_post_thumbnail(get_the_ID(), 'thumbnail') . "</a> "; // wpfp_remove_favorite_link(get_the_ID()); // echo "</li>"; endwhile; // echo "</ul>"; echo '<div class="navigation">'; if(function_exists('wp_pagenavi')) { wp_pagenavi(); } else { ?> <div class="alignleft"><?php next_posts_link( __( '← Previous Entries', 'buddypress' ) ) ?></div> <div class="alignright"><?php previous_posts_link( __( 'Next Entries →', 'buddypress' ) ) ?></div> <?php } echo '</div>'; wp_reset_query(); } else { $wpfp_options = wpfp_get_options(); echo "<ul><li>"; echo $wpfp_options['favorites_empty']; echo "</li></ul>"; } // echo '<p>'.wpfp_clear_list_link().'</p>'; |
必要であれば、適宜コメントを表示するなりすれば良いと思う。
これは、ログインしていなければクッキーに、ログインしていればDBにお気に入りが保存される。
Want It/Have It が使える良いプラグインがあったら教えて。
Reaction Buttons プラグインとか使えそうだけど・・・