Puis-je attribuer un modèle à un type de publication personnalisé?
-
-
http://www.wpbeginner.com/wp-themes/create-custom-single-post-templates-for-specific-posts-or-sections-in-wordpress/(ceciestpour les articlesmais vouspouvez lemodifierpour les CPT) http://www.nathanrice.net/blog/wordpress-single-post-templates/(c'estpour les articlesmais vouspouvez lemodifierpour les CPT) C'est unebonneidéepour unpluginen fait.http://www.wpbeginner.com/wp-themes/create-custom-single-post-templates-for-specific-posts-or-sections-in-wordpress/ ( this is for posts but you can modify it for CPT's) http://www.nathanrice.net/blog/wordpress-single-post-templates/ ( this is for posts but you can modify it for CPT's) It's a good idea for a plugin actually.
- 0
- 2011-07-22
- Wyck
-
8 réponses
- votes
-
- 2017-04-23
Depuis la WordPress version 4.7 ,vouspouvez désormais attribuer desmodèles depagepersonnalisés à d'autrestypes d'articlesavec lapage.
Pour yparvenir,en plus de l'en-tête dufichier denom demodèle,lestypes depublicationprisen chargepar unmodèlepeuvent être spécifiés à l'aide dutype depublication demodèle: comme suit.
<?php /* Template Name: Full-width page layout Template Post Type: post, page, product */
Vouspouvez obtenirplus d'informations à ce sujet sur lespages suivantes.
https://wptavern.com/wordpress-4-7-brings-custom-page-template-functionality-to-all-post-types https://make.wordpress.org/core/2016/11/03/post-type-templates-in-4-7/
From WordPress version 4.7 you can now assign custom page templates to other post types along with page.
To achieve this in addition to the Template Name file header, the post types supported by a template can be specified using Template Post Type: as following.
<?php /* Template Name: Full-width page layout Template Post Type: post, page, product */
You can get more information about it on the following pages.
https://wptavern.com/wordpress-4-7-brings-custom-page-template-functionality-to-all-post-types https://make.wordpress.org/core/2016/11/03/post-type-templates-in-4-7/
-
- 2011-07-21
Vouspouvez créer unmodèlepour destypes d'articlespersonnalisésen créant desfichiers,commeparexemple:
single-mycustomposttype.php
Voir Hiérarchie desmodèles dans le codex.
You can create template for custom post types by creating files, like for example :
single-mycustomposttype.php
See Template Hierarchy in the codex.
PS : this has already been answered.
-
Mercipour cela,mais ce quej'aimerais savoir,c'est s'ilestpossible d'ajouter desmodèlespersonnalisés à destypes depublicationpersonnalisés.Parexemple,puis-je créer deuxmodèleset attribuer chaquemodèle à son article respectif?Celapermet uniquement de spécifier unfichiermodèlepourgérer cetype depublication spécifiquepour autant queje le comprends.Thanks for that, but what I would like to know is if it is possible to add custom templates to custom post types. So for instance can I create two templates and assign each template to it's respective post? That only allows for specifying one template file to handle that specific post type as far as I understand it.
- 2
- 2011-07-21
- Odyss3us
-
Est-ce que vous voyez,si vous avezbesoin de différentsmodèlespour des articles uniques,vouspouvez créerplusieurstypes d'articlespersonnalisés,en fonction de chaquemodèlenécessaire.Je suppose que cela dépend dunombre demodèles différents dont vous avezbesoin.qu'allez-vousfaire dans lesmodèles qui doivent être différents sur chaque article?Is see, if you need different templates for single posts, you may want to create several custom post types, according to each needed template. I guess that depends on how many different templates you need. what are you going to do in the templates that needs to be different on each post ?
- 0
- 2011-07-22
- mike23
-
Cette réponseest désormais obsolète.Voir la réponse de Vinod Dalvi.This answer is now out of date. See Vinod Dalvi's answer.
- 0
- 2017-09-12
- Simon East
-
Cen'estpaspérimé.Fonctionnetoujourstrèsbien etesttoujours unepratique courante.It is not out of date. Still works just fine and is still standard practice.
- 1
- 2020-03-01
- Tim Hallman
-
- 2015-06-11
Voici ce quifonctionnepourmoi:
add_filter('single_template', function($original){ global $post; $post_name = $post->post_name; $post_type = $post->post_type; $base_name = 'single-' . $post_type . '-' . $post_name . '.php'; $template = locate_template($base_name); if ($template && ! empty($template)) return $template; return $original; });
Ainsi,étant donné unmessage detype d'articlepersonnalisé
foobar
et un slug dehello-world
,le code ci-dessus chargerait lesingle-foobar-hello-world.php
s'ilexistait.Here's what works for me:
add_filter('single_template', function($original){ global $post; $post_name = $post->post_name; $post_type = $post->post_type; $base_name = 'single-' . $post_type . '-' . $post_name . '.php'; $template = locate_template($base_name); if ($template && ! empty($template)) return $template; return $original; });
Thus given a post of custom post type
foobar
and a slug ofhello-world
the above code would load thesingle-foobar-hello-world.php
template, if it existed. -
- 2017-03-08
Pour ceux qui atteignent cefil via Google,WP 4.7 aintroduit desmodèlespourtous lestypes depublications.Voir Make WP Core pour uneprésentation complète.Vousn'êtesplus limité à unmodèlepour l'ensemble de votre CPT,vouspouvez attribuer desmodèlesindividuels articlepar article,comme vouspouvez lefaire avec Pages.
For those reaching this thread through Google, WP 4.7 introduced templates for all post types. See Make WP Core for a full walkthrough. You're no longer restricted to one template for all of your CPT, you can assign individual templates post by post just like you can do with Pages.
-
- 2016-07-13
C'est unpeu vieuxmais vouspouvez aussiessayer ceci:
Créez unmodèlepour letype demessagepersonnalisé:
single-*custom-post-type-slug*.php
Lefichier doit vérifier le sluget vérifier si unfichierexiste,sinon,revenir à unfichiermodèlepar défaut:
<?php $slug = get_post_field( 'post_name', get_post() ); $slug = ( locate_template( 'templates/*custom-post-type-slug*/' . $slug . '.php' ) ) ? $slug : 'default'; get_template_part( 'templates/*custom-post-type-slug*/' . $slug ); ?>
Remplaceztoutes lesinstances de custom-post-type-slug par le slug réel de votretype depublicationpersonnalisé.
Jefais celapourfaciliter l'utilisationet à desfins d'organisation.Celame semblepluspropre que d'avoirtous lesfichiers dans le dossier racine duthème.
exemple de structure de dossier:
themeroot | |single-cases.php |-templates | --cases | |default.php | |case-one.php | |case-two.php
This is a little old but you can also try this:
Create a template for the custom post type:
single-*custom-post-type-slug*.php
The file should check the slug and verify if a file exists, if not, fallback to a default template file:
<?php $slug = get_post_field( 'post_name', get_post() ); $slug = ( locate_template( 'templates/*custom-post-type-slug*/' . $slug . '.php' ) ) ? $slug : 'default'; get_template_part( 'templates/*custom-post-type-slug*/' . $slug ); ?>
Replace all instances of custom-post-type-slug with the actual slug of your custom post type.
I do this for ease of use and organizational purposes. It seems cleaner to me than having all of the files in the theme's root folder.
example folder structure:
themeroot | |single-cases.php |-templates | --cases | |default.php | |case-one.php | |case-two.php
-
- 2015-07-13
Commencezpar créer sur lapagenommée Articles selon votre souhait qui affiche le contenu destypes d'articles,puis créez unfichiermodèle comme ci-dessouset nommez ces élémentsmodèles. Sélectionnez cemodèlepour lapage que vous avez créée.
<div class="container"> <div class="row"> <div class="col-md-9"> <div class="panel panel-default text-center"> <?php $loop = new WP_Query( array( 'post_type' => 'items', 'posts_per_page' => 5 ) ); ?> <?php while ( $loop->have_posts() ) : $loop->the_post(); ?> <?php the_title();?> <?php if(has_post_thumbnail() ) { the_post_thumbnail(); } ?> <?php the_content();?> <?php endwhile; ?> <?php wp_reset_query(); ?> </div> </div> </div> </div>
First create on page named as Items as your wish which display the content from items post types, than create one template file as below and named that template-items. Select that template for the page you have created.
<div class="container"> <div class="row"> <div class="col-md-9"> <div class="panel panel-default text-center"> <?php $loop = new WP_Query( array( 'post_type' => 'items', 'posts_per_page' => 5 ) ); ?> <?php while ( $loop->have_posts() ) : $loop->the_post(); ?> <?php the_title();?> <?php if(has_post_thumbnail() ) { the_post_thumbnail(); } ?> <?php the_content();?> <?php endwhile; ?> <?php wp_reset_query(); ?> </div> </div> </div> </div>
-
- 2019-06-07
C'esttrès simple àfaire.
Créez unnouveaufichier PHP dans le répertoire racine de votrethèmeet ajoutez-leen haut:
<?php /* * Template Name: My custom view * Template Post Type: Post_typename // here you need to add the name of your custom post type */ ?>
L'exemple complet sera le suivant:
<?php /* * Template Name: My custom view * Template Post Type: Post_typename // here you need to add the name of your custom post type */ ?> <?php get_header();?> <div class="container pt-5 pb-5"> <?php if (has_post_thumbnail()):?> <img src="<?php the_post_thumbnail_url('largest');?>" class="img-fluid"> <?php endif;?> <?php if (have_posts()) : while (have_posts()) : the_post();?> <?php the_content();?> <?php endwhile; endif;?> </div> <?php get_footer();?>
This is very simple to do.
Create a new PHP file in your theme root directory and add this to the top:
<?php /* * Template Name: My custom view * Template Post Type: Post_typename // here you need to add the name of your custom post type */ ?>
Full example will be as following:
<?php /* * Template Name: My custom view * Template Post Type: Post_typename // here you need to add the name of your custom post type */ ?> <?php get_header();?> <div class="container pt-5 pb-5"> <?php if (has_post_thumbnail()):?> <img src="<?php the_post_thumbnail_url('largest');?>" class="img-fluid"> <?php endif;?> <?php if (have_posts()) : while (have_posts()) : the_post();?> <?php the_content();?> <?php endwhile; endif;?> </div> <?php get_footer();?>
-
- 2016-04-01
Nous avons élaboré une autre solutionen utilisant le plug-in demodèle depublicationpersonnalisé
We worked out another solution using the custom post template plugin
Puis-je attribuer unfichiermodèle à untype depublicationpersonnalisé?
J'ai créé untype depublicationpersonnalisé appelé
items
,et je voudrais attribuer desmodèles aux éléments comme vouspouvez lefaire avec despages.