ページネーション2ページ目以降が表示されない

0
いいねをした人: 居ません
  • このトピックには8件の返信、2人の参加者があり、最後に村上 直子により2年前に更新されました。
9件の投稿を表示中 - 1 - 9件目 (全9件中)
  • 投稿者
    投稿
  • #102469
    村上 直子
    参加者
    6

    ### 前提

    本件はGPL的に応援できないプラグインとの兼ね合いで発生しており、フォーラムの範囲を超えるかもしれません。その場合、もし有料にてご解決いただける場合はご案内いただけますと幸いです。

    調査用のログインアカウントが必要でしたら発行させていただきます!!!

     

    ### 情報

    【お使いの Snow Monkey のバージョン】
    バージョン: 16.4.6

    【お使いのブラウザ】
    Google Chrome
    バージョン: 100.0.4896.60(Official Build) (x86_64)

    【当該サイトのURL】

    (管理者により削除)

     

    ### 発生している問題

    カスタム投稿タイプの検索で「SDGs」と検索し(【当該サイトのURL】の状態)、ページネーションの2ページ目をクリックすると404になります。しかしテンプレートはあたらないようです。2ページ目のURLは次になります。

    (管理者により削除)

    カスタム投稿タイプの作成やその検索はToolsetというプラグインを使用しています(このプラグインはGPL的にコミュニティ的に応援できないものです)。まずこちらのフォーラムに問い合わせたところ、先にテーマに問い合わせてほしいとのことでした。

     

    ### 試したこと

    • 本件の動作に関係のなさそうなプラグインの停止 → 影響なし
    • テーマの変更 → 「Twenty Twenty-One」の場合、正常に表示される
    • 検索キーワード → 日本語(例えば「助成金」)の場合、正常に表示される

     

    いろいろと大変申し訳ございません。宜しくお願いいたしますm(_ _)m

    1
    いいねをした人:
    #102470
    村上 直子
    参加者
    6

    ### 試したこと(追加)

    違うブラウザ(Safari、Fire Fox(共にMac環境))でも試しましたが、同様でした!

    0
    いいねをした人: 居ません
    #102480
    キタジマ タカシ
    参加者
    2254

    TwentyTwentyOne で表示されるということは Snow Monkey になにかありそうですね。archive 以外のテンプレートがあたってしまう、404 テンプレートがあたってしまう、ということならまだわかる気がするのですが、画面自体表示されないというのが不思議ですね…。

    ちょっと実際にサーバーに入ってコードを直接触って調査しないとわからないと思うので、WordPress のログインアカウントと、FTP のアカウントを発行いただくことは可能でしょうか? 本番サーバーで直接操作するのがまずいということであれば、本番と同じデータが入ったテストサーバーを用意いただくか、あるいは All-in-One WP Migration などでデータを提供いただいて、こちらのローカルでテストするのでも大丈夫です。

    ご検討のほどよろしくお願いいたします。

    1
    いいねをした人:
    #102543
    キタジマ タカシ
    参加者
    2254

    原因わかりました。どうもお使いのプラグインは検索結果の2ページ目以降が HTTP 的に 404 ステータスになる仕様&2ページ目以降は index.php を使用する、という仕様のようでした。

    Snow Monkey は index.php が空なので、index.php を使用しようとした結果、何も表示されない、ということになるようです。

    ということで、下記の2つの方法が考えられます。

    // 2ページ目以降を HTTP ステータス 404 じゃなくする
    add_filter(
    	'pre_handle_404',
    	function( $preempt, $wp_query ) {
    		if (
    			! empty( $wp_query->query['paged'] )
    			&& ! empty( $wp_query->query['post_type'] )
    			&& 'sp-subsidy' === $wp_query->query['post_type']
    		) {
    			status_header( 200 );
    			return true;
    		}
    		return $preempt;
    	},
    	10,
    	2
    );
    // HTTP ステータスは 404 のままで、index.php ではなく archive.php を使用する
    add_filter(
    	'snow_monkey_controller',
    	function( $controller ) {
    		$paged     = get_query_var( 'paged' );
    		$post_type = get_query_var( 'post_type' );
    		if ( $paged && 'sp-subsidy' === $post_type ) {
    			return get_theme_file_path( 'archive.php' );
    		}
    		return $controller;
    	}
    );

    どちらでも表示はされると思うので、404 ステータスのままにするかどうかで好きなほうを選ばれると良いのかなと思います。もしかしたらプラグイン的には404であるべきという仕様で他の部分が動いている可能性もあるので、その場合は後者一択かもしれません。

    1
    いいねをした人:
    #102626
    村上 直子
    参加者
    6

    キタジマさんありがとうございます!お返事が遅くなり申し訳ありません。。。

    ご教授いただいた二つ目の方法で無事解決いたしました!!!ありがとうございます(T0T)

    一点だけ、元々「検索キーワードが日本語の場合は archive.php が正常に当たるのはなぜか」という疑問が残りました。

     

    どうもお使いのプラグインは検索結果の2ページ目以降が HTTP 的に 404 ステータスになる仕様&2ページ目以降は index.php を使用する、という仕様のようでした。

    ですので、仕様について「キーワードが日本語の場合と英語の場合で挙動が違うのか」ということを、現在プラグイン側に問い合わせています。

    進展がありましたら、お知らせいたしますので、もう少しトピックを閉じずにいますね。(一回閉じた方が宜しければ閉じます!)

    1
    いいねをした人:
    #102726
    村上 直子
    参加者
    6

    仕様について「キーワードが日本語の場合と英語の場合で挙動が違うのか」

    こちら問い合わせた結果、「テーマ側の担当範囲の話である」とのことでした。

    当初困っていた問題は既に解決しているので、これにてトピックを閉じさせていただきたいと思います。

    「日本語の場合はなぜ正常に動作するのか」について、もしSnow Monekyさんの利益になるならご調査いただけますと幸いです & 引き続き調査協力させてください。そうでもなければ、終了していただいて私の方は問題ありません。万が一また困り事が出たら相談させてくださいませ(すみません…良い表現が見つからず横柄な感じになっていたら本当にすみません)。

    この度は誠にありがとうございました!!!!!!!

     

    追伸:
    お手数をお掛けして申し訳ありません、最初の投稿のURLを削除をお願いいたします。

    1
    いいねをした人:
    #102732
    キタジマ タカシ
    参加者
    2254

    キーワードが日本語の場合と英語の場合で挙動が違うのか、普通に使う分にはには問題ないと思いますが、今回のようにエッジケースがあることがわかり、原因がなんなのか興味があるので時間があるときに調べてみますね!

    1
    いいねをした人:
    #102800
    キタジマ タカシ
    参加者
    2254

    仕様について「キーワードが日本語の場合と英語の場合で挙動が違うのか」

    こちら問い合わせた結果、「テーマ側の担当範囲の話である」とのことでした。

    調べてみました。これ、TwentyTwentyOne でも英語検索だと2ページ目以降が404ステータスになる(けど index.php があるからページは表示される)ので、テーマではなくてプラグイン側が怪しいと思います。一応プラグインも見てみたのですが、Toolset 関連のプラグインが複数あり、それぞれが結構複雑でちょっとどこでどうなっているかわかりませんでした。

    ということで、Snow Monkey は index.php が空なので、やはり前述のコードを追加するのがベストかなと思います。

    1
    いいねをした人:
    #102844
    村上 直子
    参加者
    6

    引き続き返信をくださっていることに今気づきました!ありがとうございます!!!

    今回の件に関係あるのはToolset Types(カスタム投稿タイプを作る)とViews(ループの見栄えを良くしたり、検索機能をつける)です。FormsとLayoutは停止しても問題ないかと思います。

     

    >テーマではなくてプラグイン側が怪しいと思います。一応プラグインも見てみたのですが、Toolset 関連のプラグインが複数あり、それぞれが結構複雑でちょっとどこでどうなっているかわかりませんでした。

    ありがとうございます…(T-T)

     

    >やはり前述のコードを追加するのがベストかなと思います。

    承知しました!プラグインのフォーラムにはこれ以上は期待できなさそうで、完全究明にならず申し訳ないのですが、大変助かりました。本当にありがとうございました!!!

    1
    いいねをした人:
9件の投稿を表示中 - 1 - 9件目 (全9件中)
  • トピック「ページネーション2ページ目以降が表示されない」には新しい返信をつけることはできません。

ドキュメント

Snow Monkey の設定方法やマニュアルを掲載しています。

ドキュメント

フォーラム

Snow Monkey の使い方やカスタマイズについてのご質問・ご要望等はサポートフォーラムで行っています。サポートフォーラムは誰でも閲覧できますが、書き込みできるのは Snow Monkey 購入者のみとなります。

サポートフォーラム

よくあるご質問

Snow Monkey のサービスについて不明な点がある場合は、まずはよくあるご質問をご確認ください。

よくあるご質問

お問い合わせ

よくあるご質問を見ても解決しなかった場合、試用版の申請については問い合わせフォームからお願いいたします。

お問い合わせ

Snow Monkey は Gutenberg ブロックエディターに対応した 100%GPL の WordPress テーマです。拡張性を意識した開発をおこなっており、カスタマイザーとブロックでスピーディーにサイトを立ち上げるだけでなく、CSS やフックを駆使した高度なカスタマイズにも柔軟に対応できます。