• 赤色のリンクは、まだ日本語Codexに存在しないページ・画像です。英語版と併せてご覧ください。(詳細

このWikiはいつでも誰でも編集できます

「関数リファレンス/is page template」の版間の差分

提供: WordPress Codex 日本語版
移動先: 案内検索
(用例)
(関連)
 
(2人の利用者による、間の8版が非表示)
12行目: 12行目:
  
 
==用例==
 
==用例==
'about' [[Page_Templates|ページテンプレート]]を使用しているか調べる例です。
+
[[Page_Templates|ページテンプレート]] 'about' を使用しているか調べる例です。
特定のページテンプレートを指定する場合、他の条件文とは異なり、about.php や my_page_template.php などのファイル名を指定する必要があることに注意が必要です。
+
特定のページテンプレートを指定する場合、他の条件文とは異なり、about.php や my_page_template.php などのファイル名を指定する必要があることに注意して下さい。
  
 
<pre>
 
<pre>
 
if ( is_page_template( 'about.php' ) ) {
 
if ( is_page_template( 'about.php' ) ) {
// Returns true when 'about.php' is being used.
+
// 'about.php' が使われている場合
 
} else {
 
} else {
// Returns false when 'about.php' is not being used.
+
// 'about.php' が使われていない場合
 
}
 
}
 
</pre>
 
</pre>
  
 
==注==
 
==注==
===Page template in subdirectory ===
+
===サブディレクトリにあるページテンプレートの場合===
If the page template is located in a subdirectory of the theme (since WP 3.4), prepend the folder name and a slash to the template filename, e.g.:
+
もしページテンプレートがサブディレクトリにある場合 (WP 3.4以降)、ページテンプレートの前にフォルダ名とスラッシュを追加します。
 +
:
 
<pre>
 
<pre>
 
is_page_template( 'templates/about.php' );
 
is_page_template( 'templates/about.php' );
 
</pre>
 
</pre>
===Cannot Be Used Inside The Loop===
 
Due to certain global variables being overwritten during The Loop <code>is_page_template()</code> will not work. In order to use it after The Loop you must call [[Function_Reference/wp_reset_query|wp_reset_query()]] after The Loop.
 
  
====Alternative====
+
===ループ内では使用できません===
Since the page template slug is stored inside the <tt>post_meta</tt> for any post that has been assigned to a page template, it is possible to directly query the <tt>post_meta</tt> to see whether any given page has been assigned a page template. This is the method that <tt>is_page_template()</tt> uses internally.
+
ループ内においてグローバル変数が上書きされる為、<code>is_page_template()</code> はループ内では動作しません。ループの後で使用する場合は [[関数リファレンス/wp_reset_query|wp_reset_query()]] を呼び出す必要があります。
  
The function [[Function_Reference/get_page_template_slug|get_page_template_slug( $post_id )]] will return the slug of the currently assigned page template (or an empty string if no template has been assigned - or <tt>false</tt> if the <tt>$post_id</tt> does not correspond to an actual <tt>page</tt>). You can easily use this anywhere (in The Loop, or outside) to determine whether any page has been assigned a page template.
+
====代替案====
 +
ページテンプレートスラッグが <tt>post_meta</tt> 内に格納されてから、ページテンプレートが割り当てられている投稿であれば<tt>post_meta</tt> を直接参照してページテンプレートを調べることが可能です。これは <tt> is_page_template()</tt> を内部的に使用する方法です。
 +
 
 +
<!-- Since the page template slug is stored inside the <tt>post_meta</tt> for any post that has been assigned to a page template, it is possible to directly query the <tt>post_meta</tt> to see whether any given page has been assigned a page template. This is the method that <tt>is_page_template()</tt> uses internally. -->
 +
 
 +
[[関数リファレンス/get_page_template_slug|get_page_template_slug( $post_id )]] /[[:en:Function_Reference/get_page_template_slug|en]] 関数は現在割り当てられているページテンプレートのスラッグを返します (ページテンプレートが割り当てられていない場合は空の文字列を、<tt>$post_id</tt> に該当する <tt>固定ページ</tt> が無い場合には <tt>false</tt>)。ループ内、外に関わらず簡単に割り当てられているページテンプレートを調べることができます。
 +
 
 +
<!-- The function [[Function_Reference/get_page_template_slug|get_page_template_slug( $post_id )]] will return the slug of the currently assigned page template (or an empty string if no template has been assigned - or <tt>false</tt> if the <tt>$post_id</tt> does not correspond to an actual <tt>page</tt>). You can easily use this anywhere (in The Loop, or outside) to determine whether any page has been assigned a page template.-->
  
 
<pre>
 
<pre>
 
<?php  
 
<?php  
   // in the loop:
+
   // ループ内:
 
   if ( get_page_template_slug( get_the_ID() ) ){
 
   if ( get_page_template_slug( get_the_ID() ) ){
     // Yep, this page has a page template
+
     // ページテンプレートが使用されています
 
   }
 
   }
  
   // anywhere:
+
   // どんな場所でも:
 
   if ( get_page_template_slug( $some_post_ID ) ){
 
   if ( get_page_template_slug( $some_post_ID ) ){
     // Uh-huh.
+
     // ふむふむ
 
   }
 
   }
 
?>
 
?>
66行目: 72行目:
 
{{Tag Footer}}
 
{{Tag Footer}}
  
{{NeedTrans}}
 
  
 
{{原文|Function_Reference/is_page_template|143929}}<!-- 13:02, 30 May 2014‎ Mikemanger -->
 
{{原文|Function_Reference/is_page_template|143929}}<!-- 13:02, 30 May 2014‎ Mikemanger -->
  
[[Category:Conditional Tags]]
+
[[Category:条件分岐タグ]]
[[Category:Functions]]
+

2015年6月20日 (土) 21:37時点における最新版

説明

この条件分岐タグを使用すると、任意のページのテンプレートであるかどうかを判断することができます。オプションとして固定ページで特定のページテンプレートを使用しているかのチェックを行います。これはブール関数で、Ture または False を返します。このタグはループの前で使用する必要があり、ループ内では動作しません (下記注釈を参照)。

使い方

<?php is_page_template( $template ); ?>

パラメータ

$template
string) (オプション) ページテンプレートのファイル名
初期値: なし

戻り値

(真偽値) 
(指定した) ページテンプレートであれば True、そうでなければ false を返します。

用例

ページテンプレート 'about' を使用しているか調べる例です。 特定のページテンプレートを指定する場合、他の条件文とは異なり、about.php や my_page_template.php などのファイル名を指定する必要があることに注意して下さい。

if ( is_page_template( 'about.php' ) ) {
	// 'about.php' が使われている場合
} else {
	// 'about.php' が使われていない場合
}

サブディレクトリにあるページテンプレートの場合

もしページテンプレートがサブディレクトリにある場合 (WP 3.4以降)、ページテンプレートの前にフォルダ名とスラッシュを追加します。 例:

is_page_template( 'templates/about.php' );

ループ内では使用できません

ループ内においてグローバル変数が上書きされる為、is_page_template() はループ内では動作しません。ループの後で使用する場合は wp_reset_query() を呼び出す必要があります。

代替案

ページテンプレートスラッグが post_meta 内に格納されてから、ページテンプレートが割り当てられている投稿であればpost_meta を直接参照してページテンプレートを調べることが可能です。これは is_page_template() を内部的に使用する方法です。


get_page_template_slug( $post_id ) /en 関数は現在割り当てられているページテンプレートのスラッグを返します (ページテンプレートが割り当てられていない場合は空の文字列を、$post_id に該当する 固定ページ が無い場合には false)。ループ内、外に関わらず簡単に割り当てられているページテンプレートを調べることができます。


<?php 
  // ループ内:
  if ( get_page_template_slug( get_the_ID() ) ){
     // ページテンプレートが使用されています
  }

  // どんな場所でも:
  if ( get_page_template_slug( $some_post_ID ) ){
     // ふむふむ
  }
?>

更新履歴

新規導入: 2.5.0

ソースファイル

is_page_template()wp-includes/post-template.phpにあります。

関連

条件分岐タグis_404(), is_admin(), is_admin_bar_showing(), is_archive(), is_attachment(), is_author(), is_category(), is_comments_popup(), is_date(), is_day(), is_feed(), is_front_page(), is_home(), is_local_attachment(), is_main_query, /is_multi_author, is_month(), is_new_day(), is_page(), is_page_template(), is_paged(), is_plugin_active(), is_plugin_active_for_network() /en, is_plugin_inactive() /en, is_plugin_page() /en, is_post_type_archive(), is_preview() /en, is_search(), is_single(), is_singular(), is_sticky(), is_tag(), is_tax(), is_taxonomy_hierarchical(), is_time(), is_trackback(), is_year(), in_category(), in_the_loop(), is_active_sidebar(), is_active_widget(), is_blog_installed() /en, is_rtl(), is_dynamic_sidebar(), is_user_logged_in(), has_excerpt(), has_post_thumbnail(), has_tag(), pings_open(), email_exists(), post_type_exists(), taxonomy_exists(), term_exists(), username_exists() /en, wp_attachment_is_image(), wp_script_is()



関数リファレンステンプレートタグ目次もご覧ください。


最新英語版: WordPress Codex » Function_Reference/is_page_template最新版との差分