Favorites for WordPressでお気に入り一覧を新着順に表示する方法

Favorites」は、クッキーとAJAXを利用してお気に入り登録ができるWordpress用プラグインです。
wordpressへのユーザー登録を必要としないので、簡単にお気に入り機能を実装できます。

ただ、デフォルトで利用すると、表示順が記事の投稿順になってしまいます。
そこで、少しだけコードを追加することで、お気に入りした順番に表示するようにしてみます。

まずはお気に入りを出力するコード

$favorites = get_user_favorites();
if ($favorites) :
  $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; // If you want to include pagination
  $favorites_query = new WP_Query(array(
  'post_type' => 'post', // If you have multiple post types, pass an array
  'posts_per_page' => -1,
  'ignore_sticky_posts' => true,
  'post__in' => $favorites,
  if ($favorites_query->have_posts()) : 
    while ($favorites_query->have_posts()) : $favorites_query->the_post();
      echo $post->post_title;
    endwhile;
  else :
    echo 'お気に入りはありません';
  endif;
));

上記のコードに以下の2行目と9行目を追加します。

$favorites = get_user_favorites();
krsort($favorites);
if ($favorites) :
  $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; // If you want to include pagination
  $favorites_query = new WP_Query(array(
    'post_type' => 'post', // If you have multiple post types, pass an array
    'posts_per_page' => -1,
    'ignore_sticky_posts' => true,
    'post__in' => $favorites,
    'orderby' => 'post__in'
  ));
  if ($favorites_query->have_posts()) : 
    while ($favorites_query->have_posts()) : $favorites_query->the_post();
      echo $post->post_title;
    endwhile;
  else :
    echo 'お気に入りはありません';
  endif;
));

具体的に説明します。

まずは2行目のkrsort($favorites); の部分は、取得したお気に入りデータを並び替えています。
$favoritesは配列で、お気に入りした順番(昇順)でデータが格納されています。
そこで、それを降順(つまりお気に入りした日時の新しい順)に並び替えます。

その配列をWP_Query()に渡すわけですが、WP_Query()は実行後に記事を投稿日時の新しい順に勝手に並び替えてしまいます。
そこで9行目の‘orderby’ => ‘post__in’ を指定します。
この「post__in」の意味は、「その上の行で指定している$favorites配列の順番でデータを取得してくれ」というお願いです。

こうすることで、最新のお気に入りから順番に表示してくれるようになるはずです。

panasonic Lumix DC-GF9

Panasonic LUMIX DC-GF9買った!

色々悩みましたけど、結局マイクロ・フォーサーズのGF9にしました。

なぜって、私の素人スキルではこれくらいがちょうど良いという結論に至ったもので。。。

この機種は後継機としてDC-GF10がすでに発売されていますが、まず機能的に大差がなく(新機能は使わないと思うので)、その割に新機種は価格も高いのですが、一番の理由は追加されたグリップです。

これは個人的な好き嫌いですけど、私はフラットが好きなので、あのグリップがすごく異質に見えます。
落下防止はストラップで間に合いますので、グリップは必要ないかなと思いました。

そういうわけでGF9にしたのですが、購入に至った理由はもう一つあります。
今回の購入は一種の衝動買いだったのです。
実機を見たくてある量販店に行ったところ、案の定係員が声をかけてきました。
もともとネットで買う予定だったので、なんて言おうか考えながらも話をしていたんですが、
購入の話になって(もういいや)ってことで正直にネットの金額を伝えたら、
「ちょっと相談してきます」と言って係員が姿を消し、数分後に戻ったときにはネットより安くなっていました。
ブラックよりオレンジの方が安いのでそっちを買うつもりだったし(お店にブラックの在庫はありませんでした)

これで買わない理由がなくなりました。即購入です。

家に帰ってしげしげと箱を眺めてから、、、

本体と付属品並べてみました(^o^)/

GF9の本体と付属品

その後家に帰ってじっくり触ってみましたが、触れば触るほど欲しい機能が付いていて嬉しくなってきました。
お気に入りは以下の機能です。

  1. 4K動画(30fpsで撮影できるそうです)
  2. タッチパネル(当初は必須ではなかったですが、やっぱり便利です)
  3. rawデータ保存(これは知らなかったので嬉しい誤算でした)

この機種で腕を磨いてから、フルサイズ一眼にステップアップできればと思います!

そんなわけで次の日はこんな本も買ってみました。

カメラはじめます!

 

本屋さんでじっくり吟味してから購入しました。
私が知りたかったことはほぼ網羅してます。オススメですので、一度本屋さんで確認してみてください!

created by Rinker
¥1,320 (2020/10/25 18:19:00時点 Amazon調べ-詳細)

さて、これで楽しみが増えたということで外出〜と思ってたら連日の猛暑。。。
秋が待ち遠しい今日この頃です。

※アイキャッチの画像はTiến Nguyễnflickrからお借りしました。