[解決済み] WordPressで現在のページ名を取得するにはどうすればよいですか?
質問内容
WordPressテーマで現在のページ名を取得するためのPHPコードを教えてください。
今まで見た解決策すべて
-
the_title()
-
get_page()->post_name
-
get_post()
- その他
しかし、これらは投稿エントリーを含むページには使えません。これらはすべて、最新のブログエントリーの名前を返します。
別の言い方をすると、WordPressで"My News"という名前でページを作成したとします。このページは、"投稿ページ"として設定されています。このページに、いくつかの投稿を追加します。 さて、最新の投稿の名前ではなく、文字列 "my-news" を取得するためには、どのような API を使用すればよいでしょうか?
以下のような変数があり、うまくいきそうです。
$wp_query->queried_object->post_name
実はこれも探していたページ名(スラッグ)のURLフレンドリ版なのです。これはデフォルトのテンプレートでテストされました (
トゥエンティテン
). なぜ、以下に示す2つの変数が私のサイトで機能しないのか、本当によくわかりません。ありがとうございます。
キーチ
のために
print_r()
先端
.
さて、なぜこんなにも深いところに情報が隠されているのでしょうか。
どうすればいい?
WordPressのグローバル変数
$pagename
が利用できるはずです。ご指定の設定と同じもので試したところです。
$pagename
は、wp-includes/theme.php の関数内で定義されています。
get_page_template()
もちろん、このファイルはページのテーマファイルが解析される前に呼び出されるので、ページ用のテンプレート内のどの時点でも利用可能です。
-
ドキュメントには記載されていないようですが
$pagename
変数は、パーマリンクを使用している場合にのみ設定されます。使わない場合は、WordPressはページスラッグを必要としないので、設定されないからだと思います。 -
$pagename
は、静的なフロントページとして使用する場合、設定されません。
-
これは、/wp-includes/theme.php 内のコードで、以下の時に指摘された解決策を使用しています。
$pagename
を設定することができません。
--
if ( !$pagename && $id > 0 ) {
// If a static page is set as the front page, $pagename will not be set. Retrieve it from the queried object
$post = $wp_query->get_queried_object();
$pagename = $post->post_name;
}
関連
-
[解決済み] wp_dequeue_style が動作していないようです。
-
[解決済み] WordPress: wp_create_nonce() がカスタムプラグインの内部に値を作成しない。
-
[解決済み] Wordpressのプラグインディレクトリを取得する
-
[解決済み】WordPressにPHPページを追加するにはどうすればいいですか?
-
[解決済み] WordPressのバージョンを確認するにはどうすればよいですか?
-
[解決済み] WordPressがプラグインをインストールするためにFTPの認証情報を要求してくる
-
[解決済み] WordPressで現在のページ名を取得するにはどうすればよいですか?
-
[解決済み] WordPressのapply_filters(...)って実際どうなの?
-
[解決済み] WordPressの相対URL
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] wp_dequeue_style が動作していないようです。
-
[解決済み] WordPress: wp_create_nonce() がカスタムプラグインの内部に値を作成しない。
-
[解決済み] Wordpressのプラグインディレクトリを取得する
-
[解決済み] WordPressのバージョンを確認するにはどうすればよいですか?
-
[解決済み] WordPressがプラグインをインストールするためにFTPの認証情報を要求してくる
-
[解決済み] WordPressで現在のページ名を取得するにはどうすればよいですか?
-
[解決済み] WordPressのapply_filters(...)って実際どうなの?
-
[解決済み] WordPressの相対URL