ホームページ  >  記事  >  バックエンド開発  >  WordPressで使用されるテンプレートのページIDを取得する簡単な方法

WordPressで使用されるテンプレートのページIDを取得する簡単な方法

WBOY
WBOYオリジナル
2016-07-29 09:08:151111ブラウズ

テンプレートとは何ですか?デフォルトでは、WordPress はテーマディレクトリにある page.php をテンプレートとして使用してページを表示しますが、ログインページ、登録ページ、送信ページなどのページを表示するには別のテンプレートが必要になる場合があります。これらのページはこの時点で通常のページとは異なります。 WordPress では、開発者が WordPress ページの外観や機能さえもカスタマイズできるように、ページ テンプレートを提供しています。
ページ テンプレート php ファイルのマッチング

WordPress は、カスタム列名: _wp_page_template を通じてページで使用されるテンプレートを記録します。値はテンプレートのファイル名です:

デフォルトのテンプレート page.php の場合。 、_wp_page_template の値は次のとおりです: デフォルト。最初から最後までデフォルトのテンプレートである場合、WordPress はこのカスタム列を追加しません
テーマのルート ディレクトリにあるカスタム ページ テンプレートの場合、_wp_page_template の値は、page-login.php などのファイル名になります。
テーマのサブディレクトリの下にあるページ テンプレートの場合、_wp_page_template の値には次のようなパスが含まれます: templates/page-login.php
このカスタム列の名前はアンダースコアで始まるため、非表示のカスタム列になります。このフィールドは、ページ編集ページのカスタム列には表示されません。

ページ テンプレートを使用してページ ID を取得します

login.php という名前の新しいログイン ページ テンプレートを作成しました。バックグラウンドでこのテンプレートを使用するページがすでに存在するため、次の関数を使用してログインを取得できます。 php テンプレート ページ ID:

function get_page_id_from_template($template) {
  global $wpdb;

  // 多个页面使用同一个模板我就没辙了
  $page_id = $wpdb->get_var($wpdb->prepare("SELECT `post_id` 
               FROM `$wpdb->postmeta`, `$wpdb->posts`
               WHERE `post_id` = `ID`
                  AND `post_status` = 'publish'
                  AND `meta_key` = '_wp_page_template'
                  AND `meta_value` = %s
                  LIMIT 1;", $template));

  return $page_id;
}

ページ ID を取得するために何をしているのかと疑問に思う人も多いでしょう。 ID :

<a href="<&#63;php 
echo get_permalink(get_page_id_from_template('login.php'))
&#63;>>登录</a>

からログイン ページへのリンクを取得することはできないのですか。また、ページ タイトルとエイリアスからもページ ID を取得できないのではないかと疑問に思う人もいるかもしれません。クライアント向けのテーマの場合、クライアントがどのようなタイトルを使用するか知っていますか?顧客に指定したタイトルの使用を強制しますか?それならあなたはとても非人道的です!

以上、WordPressで使用するテンプレートのページIDを取得する簡単な方法を、関連内容も含めて紹介しましたので、PHPチュートリアルに興味のある友人の参考になれば幸いです。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。