質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

受付中

WordPressでカスタム投稿の記事一覧からカテゴリーで絞り込みしたい。

byakubyaku
teruteru

総合スコア3

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

0回答

0評価

0クリップ

155閲覧

投稿2022/01/15 11:49

<分からないこと>
カスタム投稿の記事一覧からプラグイン「Search & Filter」を使って、カテゴリーごとに記事を絞り込みができないのでご相談したいです。

ご相談したい点は、
①絞り込みしても検索結果が表示されない理由
②カテゴリーの分類の仕方(検索欄の増やし方)

①絞り込みした際に記事一覧に結果が返ってきて表示されるようにしたいです。
②は、都道府県、業種、職種で選べれるように3つに分けたいです。

どのようなコードが必要なのか調べても分からず路頭に迷っています。
教えて頂けると嬉しいです。

現状以下のように作成しています。

1、functions.php以下のように作成した。

//記事一覧 function cpt_register_ArticleList(){ $labels = [ "singular_name" => "ArticleList", "edit_item" => "ArticleList", ]; $args = [ "label" => "記事一覧", "labels" => $labels, "description" => "", "public" => true, "show_in_rest" => true, "rest_base" => "", "rest_controller_class" => "WP_REST_Posts_Controller", "has_archive" => true, "delete_with_user" => false, "exclude_from_search" => false, "map_meta_cap" => true, "hierarchical" => true, "rewrite" => ["slug" => "ArticleList","with_front" => true], "query_var" => true, "menu_position" => 5, "supports" => ["title","editor","thumbnail"], ]; register_post_type("ArticleList",$args); } add_action("init",'cpt_register_ArticleList'); //記事一覧カテゴリー追加 function cptui_register_my_taxes_articlelist() { $labels = [ "name" => __( "カテゴリー", "presidents-office" ), "singular_name" => __( "カテゴリー", "presidents-office" ), ]; $args = [ "label" => __( "カテゴリー", "presidents-office",), "labels" => $labels, "public" => true, "publicly_queryable" => true, "hierarchical" => true, "show_ui" => true, "show_in_menu" => true, "show_in_nav_menus" => true, "query_var" => true, "rewrite" => [ 'slug' => 'articlelist', 'with_front' => true, ], "show_admin_column" => false, "show_in_rest" => true, "show_tagcloud" => false, "rest_base" => "articlelist", "rest_controller_class" => "WP_REST_Terms_Controller", "show_in_quick_edit" => false, "show_in_graphql" => false, ]; register_taxonomy( "articlelist", [ "articlelist" ], $args ); } add_action( 'init', 'cptui_register_my_taxes_articlelist' ); // ブログにタクソノミーを追加する register_taxonomy( 'diary', //任意の名前でつける、タクソノミー 名 'articlelist', //タクソノミーを反映させる投稿タイプ名 array( 'labels' => array( 'name' => 'test '//管理画面左側のメニューに表示される ), 'hierarchical' => true, //記事の親子関係の有無:チェックボックスで表示させるために設定必須 'show_in_rest' => true //Gutenbergに表示対応させるため必須 )); function filter_search( $query ) { if ( $query->is_search() && $query->is_main_query() && ! is_admin() ) { $query->set( 'post_type', array( 'post', 'page', 'news' ) ); } } add_filter( 'pre_get_posts', 'filter_search' );

2、page.php(page.phpに記事一覧を表示しています。)ここは、問題なく表示できてます。

<?php get_header(); ?> <div class="slider_ar"> <?php echo do_shortcode('[metaslider id="135"]'); ?> <?php if(have_posts()) : while(have_posts()) : the_post(); ?><!-- ループ開始 --> <h1><?php the_title(); ?></h1> <div class="page_container"> <?php the_content(); ?> </div> <?php endwhile; endif; ?><!--/ループの終わり --> </div> </div> <?php echo do_shortcode('[searchandfilter fields="articlelist,diary,post_tag" headings="追加したタクソノミー ,カテゴリー,タグ" operators=",OR" submit_label="検索する" ]'); ?> <div class="company"> <h2>Company<span>企業紹介</span></h2> </div> <div id="content" class="page_wrap w_inner"> <?php $args = array( 'post_type' => 'articleList', 'posts_per_page' => 9, 'paged' => $paged, ); $the_query = new WP_Query($args); ?> <ul class="artic_lists"> <?php if($the_query->have_posts()):while($the_query->have_posts()):$the_query->the_post();?> <li class="artic_list_item"> <a href="<?php the_permalink();?>"> <div class="artic_img"><img src="<?php echo CFS()->get("thumbnail"); ?>" alt="代表の画像"></div> <div class="artic_titile"><h3><?php echo CFS()->get("title"); ?></h3></div> <div class="artic_company"><?php echo CFS()->get("company"); ?></div> <div class="artic_president"><?php echo CFS()->get("president"); ?></div> </a> </li> <?php endwhile; ?> </ul> </div> <?php wp_reset_postdata(); ?> <?php else : ?> <?php endif;?> <div class="pagenation"> <?php if ($the_query->max_num_pages > 1) { echo paginate_links(array( 'base' => get_pagenum_link(1) . '%_%', 'format' => 'page/%#%/', 'current' => max(1, $paged), 'mid_size' => 1, 'total' => $the_query->max_num_pages )); } wp_reset_postdata();?> </div><!-- /pagenation --> </div> </div> </div> <?php get_footer(); ?>

どうか、力添えをお願い致します。

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。