質問: ### 前提・実現したいこと WP Favorite Postsというプラグインを使って登録会員さまのみにお気に入り記事登録の実装をしています。 ``` wpfp_get_user_meta(); have_posts(); ``` 検索結果の中にお気に入り記事があれば表示、なければ「記事はありません」などと一文を表示したいのですが、どのように記述ができるかご教授いただきたいです。 ### 試したこと PHP初心者で以下の方法が適切かわかりませんが、ここまで試しています。 お気に入り一覧ページに検索フォームを設置し、``などとし、検索結果ページでお気に入り一覧ページから来たかを判断 検索結果ページでは、ログイン中のユーザーのお気に入り記事IDを`wpfp_get_user_meta();`で取得し`have_posts();`と同じIDを表示し、`bool(false)`は非表示 `bool(false)`しかない時、または`bool(ture)`がない時は「記事はありません」などと一文を表示したいのですが、どのように記述ができるかご教授いただきたいです。 よろしくお願いいたします。
回答: 試したことと違う方法で実現できました。 ``` //ユーザーがお気に入りにした記事のIDを取得 $favorite_post_ids = wpfp_get_user_meta(); //検索したワードを取得 $r = get_search_query(); //新しいループのクエリ $args = array( 'post_type' => 'post', //投稿記事 'category__not_in' => '1', //カテゴリID1を除外 's' => $r, //検索ワード 'post__in' => $favorite_post_ids, //お気に入り記事のID ); $the_query = new WP_Query( $args ); if( $the_query->have_posts() ){ while ( $the_query->have_posts() ) { $the_query->the_post(); the_title(); } } else { echo '今のところお気に入り記事の中に『'. $r .'』は、ないみたい。。。'; } wp_reset_postdata(); ``` もしかするともっと他にいい方法があるかもしれませんが、WPの`new WP_Query`でやりたいことが実現できました。 間違っていたり、他に適切な方法がございましたら、ご教授いただきたいです。