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

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

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

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

Q&A

1回答

1425閲覧

WordPressで共通化したヘッダーからリンクを張ったが、きちんとリンクが作動しない理由を知りたい

cheshire-cat

総合スコア72

WordPress

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

0グッド

0クリップ

投稿2021/04/06 04:33

編集2021/04/06 04:35

WordPressでサイトを作っています。
サイト構成と作成ファイルは次の通りです。

  • トップページ…front-page.phpで作成。
  • 新着記事一覧とカテゴリー一覧のページ…index.phpで作成。
  • 固定ページ…page.phpで作成。
  • 料金案内のページ…page-price.phpで作成。
  • 個別の投稿ページ…single.phpで作成。
  • お知らせ一覧のページ…archive-news.phpで作成。このページはプラグイン(Advanced Custom Fields)を使って作成した
  • お知らせの投稿ページ…single-news.phpで作成。
  • 404ページ…404.phpで作成

これらのページのヘッダー部分は共通しているため、ヘッダーはheader.phpでまとめて作成しています。

ヘッダーからは「お問い合わせ」にリンクを張っています。

「お問い合わせ」はWordPressの管理画面から固定ページとして作成しており、「お問い合わせ」のスラッグはcontactに設定しています。
(WordPressのパーマリンク設定は投稿名で行っています。)

「お問い合わせ」へのリンク方法ですが、これはheader.phpファイルに直接

PHP

1<a href=”contact”>お問い合わせ</a>

と書いています。

このリンク方法でほとんどのページから「お問い合わせ」のページに飛んでくれます。
ですがお知らせ一覧のページ(archive-news.phpで作成)からは「お問い合わせ」に飛ばず、404ページに飛んでしまいます。
(404ページで「お問い合わせ」をクリックしても404ページに行きます。)

結局、この不具合は「お問い合わせ」へのリンクを

<a href=” <?php echo home_url('/contact/'); ?>”>お問い合わせ</a>

とすることで解消しました。

そこで皆様にお尋ねしたいのですが、
なぜ<a href=”contact”>お問い合わせ</a>だと、お知らせ一覧のアーカイブページからは正しくリンクされなかったのでしょうか?

ヘッダーはheader.phpで共通しているので、他のページでリンクできるのであれば、お知らせ一覧のページからもリンクできるはずではないでしょうか?

お知らせ一覧を作ったarchive-news.phpの階層の問題かと思いもいましたが、archive-news.phpも他のファイルと同じ階層・同じ場所にあります。

あるいはarchive-news.phpはプラグイン(Advanced Custom Fields)を使って作成しているので、プラグインの仕様の影響でしょうか?

よろしくお願いします。

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

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

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

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

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

guest

回答1

0

contact が、お問い合わせページになっていると仮定します。
固定ページのスラッグにcontactと指定しているということですが、表示を”/contact”にしたら全部から表示されませんか?
”contact”だけですと、現在表示されているURLから相対的に示された場所になります。

https://xxxxxxxxx/archives/ で、アーカイブが表示されていたら、
https://xxxxxxxxx/archives/contact にアクセスしていませんか?404エラーのページのURLを見れば解ると思います。

投稿2021/04/06 04:45

nfox

総合スコア229

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

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

cheshire-cat

2021/04/06 05:04

ありがとうございます。 確かに/contactにしたらきちんと表示されました。 またcontactの場合、お知らせ一覧のページからcontactをクリックすると、https://お知らせ一覧/contactに飛んでしまいました。 これがエラーの原因だったんですね。 相対的に示された場所に飛ぶとは考えていませんでした。大変参考になりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問