投稿がカスタム投稿タイプであるかどうかをテストするにはどうすればよいですか?
6 回答
- 投票
-
- 2011-01-11
こちら:
get_post_type()
、次にif ( 'book' == get_post_type() ) ...
(Codexの条件付きタグ>投稿タイプ)に準拠. Here you are:
get_post_type()
and thenif ( 'book' == get_post_type() ) ...
as per Conditional Tags > A Post Type in Codex.-
[`is_singular()`](http://codex.wordpress.org/Function_Reference/is_singular)はもう少しコンパクトです[条件付きタグ>単一ページ、単一投稿または添付ファイル](http://codex.wordpress.org/Conditional_Tags#A_Single_Page.2C_Single_Post_or_Attachment)[`is_singular()`](http://codex.wordpress.org/Function_Reference/is_singular) is bit more compact [Conditional Tags > A Single Page, Single Post or Attachment](http://codex.wordpress.org/Conditional_Tags#A_Single_Page.2C_Single_Post_or_Attachment)
- 26
- 2011-01-11
- Rarst
-
- 2012-06-12
if ( is_singular( 'book' ) ) { // conditional content/code }
カスタム投稿タイプの投稿を表示する場合、上記は
true
です:book
.if ( is_singular( array( 'newspaper', 'book' ) ) ) { // conditional content/code }
カスタム投稿タイプの投稿を表示する場合、上記は
true
です:newspaper
またはbook
.これらおよびその他の条件付きタグ
はここで表示できます. if ( is_singular( 'book' ) ) { // conditional content/code }
The above is
true
when viewing a post of the custom post type:book
.if ( is_singular( array( 'newspaper', 'book' ) ) ) { // conditional content/code }
The above is
true
when viewing a post of the custom post types:newspaper
orbook
.These and more conditional tags can be viewed here.
-
- 2011-07-06
これを
functions.php
に追加すると、ループの内側または外側で機能を使用できます.function is_post_type($type){ global $wp_query; if($type == get_post_type($wp_query->post->ID)) return true; return false; }
これで、次を使用できるようになりました:
if (is_single() && is_post_type('post_type')){ // Work magic }
Add this to your
functions.php
, and you can have the functionality, inside or outside of the loop:function is_post_type($type){ global $wp_query; if($type == get_post_type($wp_query->post->ID)) return true; return false; }
So you can now use the following:
if (is_single() && is_post_type('post_type')){ // Work magic }
-
ありがとう、これはとても便利です! しかし、それは次のようになります:if(is_single()&&is_post_type( 'post_type')){//魔法を働かせる }閉じ括弧がありませんでした.... 多くのご挨拶、エセルThank you, this is very useful! But it should be: if (is_single() && is_post_type('post_type')){ //work magic } The closing bracket was missing.... Many greetings, Ethel
-
これは他の誰かのために機能しなくなりましたか?私はこれを何年も使ってきましたが、突然これは私のために機能しなくなりました.ただし、同じメソッドを**使用せずに**グローバル$ wp_queryを使用すると、常に機能します. `if( 'post-type'==get_post_type()){}`Has this stopped working for anyone else? I've used this for ages, but suddenly this stopped working for me. However, using the same method **without** global $wp_query always works: `if ( 'post-type' == get_post_type() ) {}`
- 0
- 2017-01-13
- turtledropbomb
-
is_post_type()は減価償却されます.is_post_type() is depreciated.
- 0
- 2017-12-21
- Lisa Cerilli
-
- 2013-04-15
投稿が任意のカスタム投稿タイプであるかどうかをテストするには、組み込みではないすべての投稿タイプのリストを取得し、投稿のタイプがそのリストに含まれているかどうかをテストします.
機能として:
/** * Check if a post is a custom post type. * @param mixed $post Post object or ID * @return boolean */ function is_custom_post_type( $post = NULL ) { $all_custom_post_types = get_post_types( array ( '_builtin' => FALSE ) ); // there are no custom post types if ( empty ( $all_custom_post_types ) ) return FALSE; $custom_types = array_keys( $all_custom_post_types ); $current_post_type = get_post_type( $post ); // could not detect current type if ( ! $current_post_type ) return FALSE; return in_array( $current_post_type, $custom_types ); }
使用法:
if ( is_custom_post_type() ) print 'This is a custom post type!';
To test if a post is any custom post type, fetch the list of all not built-in post types and test if the post’s type is in that list.
As a function:
/** * Check if a post is a custom post type. * @param mixed $post Post object or ID * @return boolean */ function is_custom_post_type( $post = NULL ) { $all_custom_post_types = get_post_types( array ( '_builtin' => FALSE ) ); // there are no custom post types if ( empty ( $all_custom_post_types ) ) return FALSE; $custom_types = array_keys( $all_custom_post_types ); $current_post_type = get_post_type( $post ); // could not detect current type if ( ! $current_post_type ) return FALSE; return in_array( $current_post_type, $custom_types ); }
Usage:
if ( is_custom_post_type() ) print 'This is a custom post type!';
-
これは受け入れられた答えでなければなりません.This should be the accepted answer.
- 1
- 2018-03-21
- aalaap
-
-
- 2014-01-30
すべてのカスタム投稿タイプのワイルドカードチェックが必要な場合:
if( ! is_singular( array('page', 'attachment', 'post') ) ){ // echo 'Imma custom post type!'; }
この方法では、カスタム投稿の名前を知る必要はありません.また、後でカスタム投稿の名前を変更しても、コードは機能します.
If you want a wild card check for all your custom post types:
if( ! is_singular( array('page', 'attachment', 'post') ) ){ // echo 'Imma custom post type!'; }
This way you don't need to know the name of your custom post. Also the code still work even if you change the name of your custom post later.
投稿がカスタム投稿タイプであるかどうかをテストする方法を探しています.たとえば、たとえば、次のようなコードを挿入できるサイドバー:
カスタム投稿タイプのみのコードテストが必要です.