WP Favorite Postsをカスタム投稿タイプでも動作させる方法 – カスタム投稿記事のお気に入りを削除可に拡張

この記事は4年前に書かれました。不適当な記述を含む場合がありますので、参考程度に留めてください。

どうもこんにちは。toshikuraです。今回のTipsは【WP Favorite Postsをカスタム投稿タイプでも動作させる方法 – カスタム投稿記事のお気に入りを削除可に拡張】です。WP Favorite Postsは、Wordpressに「お気に入り機能」をつけるプラグインとして有名です。しかしながらお気に入りの一覧表示にはカスタム投稿タイプの投稿が表示されず、お気に入り削除が一覧表示上から行えないという問題がありました(※一覧表示だけならwidgetで行えます)。せっかく便利なプラグインですので今後の為にも解決策を発見しましたのでメモしておきます。参照元:WP Favorite Posts Custom post type

修正方法

対象ファイル:/plugin/wp-favorite-posts/wpfp-page-template.php
対象ファイルのL20 – L25に記述してある下記のquery_posts〜endwhile;部分をforeach〜}へ書き換えます。

書き換え前
query_posts(array(‘post__in’ => $favorite_post_ids, ‘posts_per_page’=> $post_per_page, ‘orderby’ => ‘post__in’, ‘paged’ => $page));
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>”;
endwhile;
書き換え後
foreach ($favorite_post_ids as $post_id) {
$p = get_post($post_id);
echo “<li>”;
echo “<a href='”.get_permalink($post_id).”‘ title='”. $p->post_title .”‘>” . $p->post_title . “</a> “;
wpfp_remove_favorite_link($post_id);
echo “</li>”;
}

以上になります。あとは固定ページのコンテンツ用に記述する{{wp-favorite-posts}}で確認できるかと思います。