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

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

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

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

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

0回答

744閲覧

【WordPress】カスタムフィールド(Advanced Custom Fields)のチェックボックスで一覧表示。2ページ目以降が表示できない。

dsuga

総合スコア17

WordPress

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

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2021/11/06 11:44

編集2021/11/06 15:13

前提・実現したいこと

【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

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

アカウントをお持ちの方は

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問