🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
WordPress

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

Q&A

1回答

441閲覧

wordpressの検索結果画面の次へボタンのリンクに任意の文字列を足したい

kafka

総合スコア15

WordPress

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

0グッド

0クリップ

投稿2021/02/15 07:53

現在運用しておりますワードプレスで検索をおこなうと下記の検索結果となります。

https://www.houndcom.com/blog/?s=%E8%85%8E%E8%87%93

ここまではよいのですが、ページ下部のページナビゲーターの

2ページ目や3ページ目のボタンをクリックすると

https://www.houndcom.com/?s=%E8%85%8E%E8%87%93&paged=2

というURLへ遷移してしまいます。

これらを解決するために

https://www.houndcom.com/?s=

の/と?s=の間にblog/の文字列を足したいのですが、
なにかよい方法はないでしょうか?

色々と試してみましたが検索結果の最初のページが

https://www.houndcom.com/blog/blog/?s=%E8%85%8E%E8%87%93

等になってしまい、うまく運用ができません。

是非よいアドバイスを頂けますようお願い申し上げます。

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

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

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

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

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

CHERRY

2021/02/15 20:47

WordPress.の構成がわからないのですが、シングルサイトですか? マルチサイトですか? また、サイトURL や WordPress アドレスは、blog がつかないURL でしょうか?
kafka

2021/02/16 03:12

ご返信ありがとうございます。 私自信も途中で引き継ぎましたので詳しくいま調べているのですが、本来このワードプレスのURLは 別のサーバーで別ドメインで運用していたのですが、 下記の通販サイト https://www.houndcom.com/ のドメイン内傘下で運用しているように見せるショップのシステムを利用して無理やりに https://www.houndcom.com/blog/ として運用しております。 テーマによっては質問の問題が起きていなかったのですが、今回のテーマにしてから質問の問題がおきるようになってしまいました。
退会済みユーザー

退会済みユーザー

2021/02/17 08:35

>色々と試してみました 色々とは?
kafka

2021/02/17 09:58 編集

phpに対して無知なため、テーマの中のソースを見まして、 検索結果の下のナビゲーションを呼び出しているphpファイルを見つけ その中の下記の部分(この本文下のほうに記載しております)paginate_formatの先の部分の == '/' ? ' がURL上の /?s=%E8%85%8E%E8%87%93&paged=2 と関連性があるのかという勝手な解釈のもと == '/blog/' ? ' にしてみたりしました。 blog/blog/になった際の作業が、検索した中で見つけたことを試したのですが、 その検索結果ページが再度見つからず申し訳ございませんがその結果になった過程がお答えできません。 -----------対象のソース部分になります---------- $paginate_format = (substr($paginate_base, -1 ,1) == '/' ? '' : '/') . user_trailingslashit('page/%#%/', 'paged');; $paginate_base .= '%_%'; }
yuki84web

2021/02/17 11:28

全体のソースが分からないのですが、ページ送りのボタンを出力しているURLを生成する箇所で現在のURLを$_SERVER['REQUEST_URI']なんかで取得して加工・生成してあげればよいかと思います。(個人でページネーションを自作した時に行った方法です)
kafka

2021/02/18 05:05

ご返信ありがとうございます。 ページネーションを作成しているソースは <?php global $wp_rewrite; $paginate_base = get_pagenum_link(1); if (strpos($paginate_base, '?') || ! $wp_rewrite->using_permalinks()) { $paginate_format = ''; $paginate_base = add_query_arg('paged', '%#%'); } else { $paginate_format = (substr($paginate_base, -1 ,1) == '/' ? '' : '/') . user_trailingslashit('page/%#%/', 'paged');; $paginate_base .= '%_%'; } echo '<div class="page_navi clearfix">'. "\n"; if (show_posts_nav()) { echo '<h4>'; _e("PAGE NAVI","tcd-w"); echo '</h4>' . "\n"; } else { echo '<p class="back"><a href="'; echo bloginfo('url'); echo '/">'; _e("RETURN HOME","tcd-w"); echo '</a></p>'; }; echo paginate_links( array( 'base' => $paginate_base, 'format' => $paginate_format, 'total' => $wp_query->max_num_pages, 'mid_size' => 5, 'current' => ($paged ? $paged : 1), 'type' => 'list', 'prev_text' => '&laquo;', 'next_text' => '&raquo;', )); echo "\n</div>\n"; ?> となっております。 >>$_SERVER['REQUEST_URI']なんかで取得して加工・生成 とありますが、私自身がphpには無知でなかなかそういった複雑な作業が難しいのが現状です。
yuki84web

2021/02/18 12:53

$paginate_baseという変数が怪しいですが、それの中身はどうなっていますか?(var_dump()などで見られますか?)
guest

回答1

0

投稿タイプが通常のpostだとして
以下のコードをfunctions.phpに追記した場合の検索結果はどう?

add_action( 'template_redirect', function(){ if ( get_post_type() === 'post' && is_search() && ! empty( $_GET['s'] ) ) { wp_safe_redirect( home_url( '/blog/?s=' ) . urlencode( get_query_var( 's' ) ) ); exit(); } } );

投稿2021/02/17 11:30

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

kafka

2021/02/18 05:04

ありがとうございます。 ご教授いただきました方法でfunctions.phpに記載したところURLが https://www.houndcom.com/blog/blog/?s= となり、検索結果に遷移しない状態となりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

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

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

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問