前提・実現したいこと
【WordPress】Advanced Custom Fields(以下 ACF)のチェックボックスで、2ページ目以降が表示できない。
発生している問題・エラーメッセージ
ACFのチェックボックスでチェックした項目を、カスタム投稿タイプの一覧ページに表示したいです。
しかし2ページ目以降が表示されず(404 Not foundエラー)になってしまいます。
ラジオボタンのほうは、動いております。
コードまとまっておらず、見辛く恐縮ですが、
そもそも実現可能なのか含め、
ご助言いただけますと幸いです。
該当のソースコード
functions.php
PHP
1// パラメータ付与 2function add_meta_query_vars($public_query_vars) 3{ 4 $public_query_vars[] = 'meta_key'; 5 $public_query_vars[] = 'meta_value'; 6 return $public_query_vars; 7} 8add_filter('query_vars', 'add_meta_query_vars');
archives-custompost.php
PHP
1// パラメータ取得 2$key_params = $_GET['meta_key']; 3$val_params = $_GET['meta_value']; 4 5 6$paged = (get_query_var('paged')) ? absint(get_query_var('paged')) : 1; 7if ($key_params == 'vol_area') : // ラジオボタン。こっちは動く 8 $args = array( 9 'paged' => $paged, 10 'post_status' => array('publish'), 11 'posts_per_page' => 2, 12 'post_type' => 'facility', 13 'meta_query' => array( 14 'relation' => 'OR', 15 array( 16 'key' => $key_params, 17 'value' => $val_params, 18 'compare' => 'LIKE', 19 ), 20 array( 21 'key' => $key_params, 22 'value' => $val_params, 23 'compare' => 'IN', 24 ), 25 ), 26 27 ); 28elseif ( // * チェックボックス。ここが動かず 29 $key_params == 'fa_sekounaiyou' && 30 $val_params == 'small' || 31 $val_params == 'middle' 32) : 33 34 $args = array( 35 'paged' => $paged, 36 'post_status' => array('publish'), 37 'posts_per_page' => 2, 38 'post_type' => 'facility', 39 'meta_query' => array( 40 'relation' => 'OR', 41 array( 42 'key' => 'fa_sekounaiyou', 43 'value' => 'small', 44 'compare' => 'LIKE', 45 ), 46 array( 47 'key' => 'fa_sekounaiyou', 48 'value' => 'middle', 49 'compare' => 'LIKE', 50 ), 51 ), 52 ); 53endif; 54?> 55 56<?php while ($my_query->have_posts()) : $my_query->the_post(); ?> 57<!-- ループ --> 58<?php endwhile; 59wp_reset_postdata(); 60?> 61 62 63<?php 64// ページネーション 65global $wp_rewrite; 66$paginate_base = get_pagenum_link(1); 67if (strpos($paginate_base, '?') || !$wp_rewrite->using_permalinks()) { 68 $paginate_format = ''; 69 $paginate_base = add_query_arg('paged', '%#%'); 70} else { 71 $paginate_format = (substr($paginate_base, -1, 1) == '/' ? '' : '/') . 72 user_trailingslashit('page/%#%/', 'paged');; 73 $paginate_base .= '%_%'; 74} 75echo paginate_links(array( 76 'base' => $paginate_base, 77 'format' => $paginate_format, 78 'total' => $my_query->max_num_pages, // ここ、$my_query->では。後で確認 79 'mid_size' => 5, 80 'current' => ($paged ? $paged : 1), 81)); 82?> 83
補足情報
プラグイン:
-
Advanced Custom Fields Pro
-
ラジオボタンのURL 例:こちらは動いている。
{カスタム投稿タイプまでのURL。以下省略}?meta_key=vol_area&meta_value=area-a&paged=2
- チェックボックスのURL例:こちらが2ページ目以降、404エラーとなる。
{省略}?meta_key=fa_sekounaiyou&meta_value=small&paged=2
あなたの回答
tips
プレビュー