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

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

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

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

PHP

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

Q&A

解決済

1回答

5725閲覧

WordPressのページ内リンク設定について

Beginner_A

総合スコア19

WordPress

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

PHP

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

0グッド

0クリップ

投稿2020/01/29 06:35

編集2020/01/30 05:02

Wordpress初心者です。

ページ内リンクについて質問です。

header.phpに設置したグローバルメニューから、固定ページのページ内のコンテンツにリンクしたいのですが、

<a href="<?php echo esc_url( home_url( '/ /' ) ); ?>">

で設定しています。
上記を使用する場合のページ内リンクの書き方を知りたいため、よろしくお願いします。


★1/30追記です ↓

【functions.php】 class relative_URI { function relative_URI() { add_action('get_header', array(&$this, 'get_header'), 1); add_action('wp_footer', array(&$this, 'wp_footer'), 99999); } function replace_relative_URI($content) { $home_url = trailingslashit(get_home_url('/')); return str_replace($home_url, '/', $content); } function get_header(){ ob_start(array(&$this, 'replace_relative_URI')); } function wp_footer(){ ob_end_flush(); } } new relative_URI();

相対パスを可能にするため、上記コードをfunctions.phpに記述しています。
固定ページは、例えば

<a href="/contact">

でページ遷移ができるのですが、headerなどのphpファイルではページ遷移できませんでした。

なので、header.phpのグローバルナビには

<a href="<?php echo esc_url( home_url( '/★/' ) ); ?>">

と記述しリンクさせていたのですが、ページの途中のコンテンツに遷移させなければならなくなったので、

<a href="<?php echo esc_url( home_url( '/contact#sec2/' ) ); ?>">

と記述してみたのですが、ダメでした。


実現したいこと

「phpファイルでも相対パスを使えるようにする(functions.phpに記述)」または、
<a href="<?php echo esc_url( home_url( '/★/' ) ); ?>">で固定ページのコンテンツの途中にリンクさせる」
のどちらかで構いません。
header.phpのグローバルナビから、固定ページの途中にリンクができるようにしたいです。
PHPも詳しくないため、どなたか教えていただけると助かります。
よろしくお願いします。

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

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

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

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

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

Takumiboo

2020/01/29 07:00

> 上記を使用する場合の その理由は?
Beginner_A

2020/01/29 07:12

ご覧いただき、ありがとうございます。 functions.phpでリンクの短縮の設定はしているのですが、phpファイルは上手くいかないため、<?php echo esc_url( home_url( '/ /' ) ); ?>を使用しています。 この場合、ページ内リンクができるのかを検索しても見つからず、教えていただきたいなと思いました。
CHERRY

2020/01/30 03:11 編集

「ページ内リンク」というのは、 https://wpdocs.osdn.jp/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%82%BF%E3%82%B0/home_url#.E3.83.91.E3.83.A9.E3.83.A1.E3.83.BC.E3.82.BF のように ページ内の途中へジャンプする `#.E3.83.91.E3.83.A9.E3.83.A1.E3.83.BC.E3.82.BF` をどの様に指定するのかということでしょうか? example.com 等の例示用ドメインを用いて、ページ内リンクの具体的なURL の例を記載していただけないでしょうか。
Beginner_A

2020/01/30 05:07

Takumiboo 様 説明不足ですみません。 リンクの短縮の設定というのは、言い方が間違っていました。 編集しましたので、もしお分かりでしたら教えていただけます幸いです。 ------------------------------------------------------------------------ CHERRY 様 ご覧いただきありがとうございます。 分かりづらいかもしれませんが、編集に追記しました。 もしお分かりでしたら、よろしくお願い致します。
Takumiboo

2020/01/30 05:09

まず「相対パスを可能にするため」というのがよく分かりません。 今手元のWordPressで試しましたが、特にfunctions.phpへの追記なく、「<a href="/test">test</a>」という形式でtestという固定ページへのリンクが張れることを確認しています。
Takumiboo

2020/01/30 05:11

直接の原因と思われるところについては回答に記載しました。
guest

回答1

0

ベストアンサー

HTML

1<a href="<?php echo esc_url( home_url( '/contact#sec2/' ) ); ?>">

単純に最後のスラッシュが不要なのでは?

投稿2020/01/30 05:10

Takumiboo

総合スコア2534

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

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

CHERRY

2020/01/30 05:37

または、` /contact/#sec2 ` かな。
Takumiboo

2020/01/30 05:42

そうですね、なぜesc_url、home_urlにこだわられているのかは分かりませんが…。
Beginner_A

2020/01/31 04:35

こだわりではなく、知識がないため色々と試してみて、上手くいった方法を使用したという感じです。 最後のスラッシュなしでリンクできました。 <a href="<?php echo esc_url( home_url( '/contact#sec2' ) ); ?>"> ありがとうございました。
Takumiboo

2020/01/31 04:53

単純に「<a href="/contact#sec2">」で良いのではないか?と思ってしまうのですが。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問