Comment tester si une publication est un type de publication personnalisé?
6 réponses
- votes
-
- 2011-01-11
Vous voici:
get_post_type()
puisif ( 'book' == get_post_type() ) ...
selon Balises conditionnelles> Untype depublication dans le 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)est unpeuplus compact [Balises conditionnelles> Une seulepage,un seulmessage ou unepiècejointe] (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 }
Ce quiprécèdeest
true
lors de l'affichage d'un article dutype depublicationpersonnalisé:book
.if ( is_singular( array( 'newspaper', 'book' ) ) ) { // conditional content/code }
Ce quiprécèdeest
true
lors de l'affichage d'unmessage destypes depublicationpersonnalisés:newspaper
oubook
.Cesbalises conditionnelleset d'autres peuvent être consultéesici .
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
Ajoutez ceci à votre
functions.php
,et vouspouvez avoir lafonctionnalité,à l'intérieur ou à l'extérieur de laboucle:function is_post_type($type){ global $wp_query; if($type == get_post_type($wp_query->post->ID)) return true; return false; }
Vouspouvez donc désormais utiliser les éléments suivants:
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 }
-
Merci,c'esttrès utile! Mais ça devrait être:if (is_single () &&is_post_type ('post_type')) {//fais de lamagie } Le crochetfermantmanquait ... Salutations,EthelThank 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
-
Cela a-t-il cessé defonctionnerpour quelqu'un d'autre?Je l'utilise depuis des lustres,mais soudain,cela a cessé defonctionnerpourmoi.Cependant,utiliser lamêmeméthode ** sans **global $ wp_queryfonctionnetoujours: `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 ()est déprécié.is_post_type() is depreciated.
- 0
- 2017-12-21
- Lisa Cerilli
-
- 2013-04-15
Pourtester si unmessageest n'importe quel type demessagepersonnalisé,récupérez la liste detous lestypes depublicationnonintégréset testez si letype depublicationest dans cette liste.
Entant quefonction:
/** * 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 ); }
Utilisation:
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!';
-
Cela devrait être la réponse acceptée.This should be the accepted answer.
- 1
- 2018-03-21
- aalaap
-
- 2013-02-01
Sipour une raison quelconque vous avez déjà accès à la variableglobale $post,vouspouvez simplement utiliser
if ($post->post_type == "your desired post type") { }
If for any reason you already have access to the global variable $post, you can simply use
if ($post->post_type == "your desired post type") { }
-
- 2014-01-30
Si vous souhaitez une vérification des caractèresgénériquespourtous vostypes demessagespersonnalisés:
if( ! is_singular( array('page', 'attachment', 'post') ) ){ // echo 'Imma custom post type!'; }
De cettefaçon,vousn'avezpasbesoin de connaître lenom de votremessagepersonnalisé.Deplus,le codefonctionnetoujoursmême si vousmodifiez lenom de votremessagepersonnalisé ultérieurement.
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.
Je cherche unmoyen detester si un articleest untype d'articlepersonnalisé.Parexemple,dans,disons,labarre latérale,je peuxinsérer un code comme celui-ci:
Je souhaitetester le code uniquementpour untype depublicationpersonnalisé.