ログインしたユーザーがクリックして「お気に入り」のリストに投稿を保存できる、シンプルな「お気に入りの投稿」ボタンを作成しました。このボタンは、現在の投稿IDをuser_metaフィールドに追加します。
ただし、「お気に入り」ページに情報を表示することに関しては、少し行き詰まっています。
お気に入りの投稿IDのリストを問題なく表示できますが、投稿のタイトルやパーマリンクなどの情報を追加しようとすると、Wordpressは「お気に入り」ページの情報を配列に渡します。「お気に入り」のリストの上に、ハイパーリンクされた「お気に入り」も表示されます。
これを防ぐ方法についての考え。これがコードです...
<?php //start favorites list
// Get user info.
global $current_user, $wp_roles;
get_currentuserinfo();
$myFaves = get_user_meta($current_user->id, 'faveposts', true);
$myFavesArray = explode(',',$myFaves);
sort($myFavesArray);
foreach ($myFavesArray as $myFave) :
?>
<a href="<?php echo get_permalink( $myFave ); ?>">
<?php echo get_the_title($myFave); ?>
</a>
<?php endforeach; //end favorites list ?>
そして、これが出力です...
<a href="http://sample-url.com/favorites/">
Your Favorites
</a>
<a href="http://sample-url.com/post-1/">
Post Title 1
</a>
<a href="http://sample-url.com/post-2/">
Post Title 2
</a>
投稿タイトル1と2は、実際にお気に入りの投稿の例です。お気に入りは、お気に入りを表示するページです(表示されるべきではありません)。
考え?
編集
修正が見つかりました。このコードを追加すると、現在の投稿が配列から削除されます...
unset($myFavesArray[0]);
したがって、最終的なコードは...
$myFaves = get_user_meta($current_user->id, 'faveposts', true);
$myFavesArray = explode(',',$myFaves);
unset($myFavesArray[0]);
sort($myFavesArray);
foreach ($myFavesArray as $myFave) :