WP Favorite Postsの設定方法

WP Favorite Postsの設定方法

【プラグイン導入手順】
1、他のプラグインと同じくWPにインストールを行い、有効化する
2、設定>WP Favorite Posts から、必要な設定を行う
wp-favorite-posts
3、お気に入りボタンをカスタマイズする場合、出力箇所にを設定
4、wpfp-page-template.phpを編集し、お気に入り一覧を作成する
  ※お気に入り一覧は初期状態ではテキストと削除ボタンの並ぶシンプルなものになる
  ※編集したwpfp-page-template.phpは、バージョンアップを行うと上書きされる

【プラグイン仕様】
◯ログイン前のデータをログイン後に引き継がない

◯お気に入りリンクのオン/オフそれぞれの出力ソースは同じである。
 →デザインを変えたい場合など、中のテキストを判別してclassを振るなど行う必要がある

■JavaScript

// お気に入りリンク表示分岐(“削除”テキストを含めば.removeを宛てる)
var tag = jQuery("a.wpfp-link");
tag.each(function(){
    var href = jQuery(this).attr('title');
    if (href != null ) {
      href = href.replace(/#/g,'');
      if (href.match(/削除/i) ) {
        jQuery(this).addClass("remove");
      }
    }
});

◯お気に入りリンクを押下した際に行われる処理は下記のようになる
 [ボタン押下→自URLにパラメータを追加(リロード)→ページ読み込み時にパラメータの有無を確認→パラメータを持っていればそれに伴う処理を行う]
 その為、自リンク(リロード)が発生する仕様になる。
 リロード後もスクロール位置を保存したい場合など、Cookieを用いた処理を行う。

■JavaScript

var key = 'keep-position-'+location.pathname;
// Cookieに値があればスクロール+Cookieをリセット
if($.cookie(key)){
  setTimeout(function(){
    $(window).scrollTop($.cookie(key));
    $.removeCookie(key);
  },400);
}
// クリックで発火
$(document).on('click', '.wpfp-link', function(){
  keepPosition();
});
// スクロール位置をCookieに保存
function keepPosition(){
  $.cookie(key, $(window).scrollTop(), { expires: 1 });
}

◯オートページャーと組み合わせる場合も、リロード時に開いたコンテンツが閉じるためにCookie処理が必要。

■JavaScript

(function() {
  // クリックで発火
  $(document).on('click', '.wpfp-link', function(){
    viewCount = $(".workList li.js-fadeinList").length;
    keepView();
  });
  // 表示コンテンツ数をCookieに保存
  function keepView(){
    $.cookie("VIEW", viewCount, { expires: 1 });
  }
}());

■php

$viewTOP = $_COOKIE['VIEW'];
if(empty($viewTOP)){
  $viewTOP = VIEW_TOP_ARCHIVE;
}
$wpQuery = new WP_Query();
$paged   = get_query_var('paged') ? get_query_var('paged') : 1;
$param   = array(
  'posts_per_page' => $viewTOP,
  'orderby'        => 'date',
  'order'          => 'DESC',
  'post_status'    => 'publish',
  'post_type'      => 'post',
  'paged'          => $paged
);
$wpQuery->query($param);

参考サイト

NETAONE
WP Favorite Posts – お気に入り機能が利用できるWordPressプラグイン
http://netaone.com/wp/wp-favorite-posts/
ITTI
記事を一時保存できるWP Favorite Postsの設定からカスタマイズ
https://www.itti.jp/web-staff/wp-favorite-posts.php
Stronghold Archive
WP Favorite Postsをカスタム投稿タイプでも動作させる方法 – カスタム投稿記事のお気に入りを削除可に拡張
https://zxcvbnmnbvcxz.com/wp-favorite-posts-custum-post-type/