web-dev-qa-db-fra.com

Type de page personnalisé - modèle sous les attributs de page?

Je pensais que nous pouvons appliquer des modèles à types de page personnalisés :

De cette manière, vous ne pouvez pas appliquer de modèles à des types de publication personnalisés. Cela n'apparaîtra que si le type de message est 'page'

Mon code:

function keyword_pages_init() {
    $args = array(
      'label' => 'Keywords',
        'public' => true,
        'show_ui' => true,
        'capability_type' => 'page',
        'hierarchical' => false,
        'rewrite' => array('slug' => 'keywords'),
        'query_var' => true,
        'menu_icon' => 'dashicons-admin-page',
        'supports' => array(
            'title',
            'editor',
            'excerpt',
            'trackbacks',
            'custom-fields',
            'comments',
            'revisions',
            'thumbnail',
            'author',
            'page-attributes',
            )
        );
    register_post_type( 'keywords', $args );
}
add_action( 'init', 'keyword_pages_init' );

Mais la template n'apparaît pas du tout sous page attributes lorsque j'essaie d'ajouter une nouvelle page sous ce type de page personnalisé.

Des idées?

1
laukok

Faites-vous référence à la nouvelle fonctionnalité de modèles de types de postes incluse dans la section 4.7 ?

Pour rendre un modèle de page _ disponible à votre cpt 'mots-clés', vous devez ajouter un en-tête de ce type à un modèle de page personnalisé.

/**
 * Template Name: Template Name
 * Template Post Type: post, page, keywords
 */

Ce modèle serait disponible pour toutes les publications, pages et vos mots clés cpt. Voici un exemple de modèle de page complète ...

<?php
/**
 * ACF Flexible Content template
 *
 * Learn more: https://codex.wordpress.org/Template_Hierarchy
 *
 * @package YM
 * @since   1.0
 * @version 1.0
 */

/**
 * Template Name: Flexible Content
 * Template Post Type: post, page, product, event
 */



/**
 * Add landing page body class to the head
 *
 * @param $classes
 * @return array
 */
add_filter( 'body_class', function ( $classes ) {
    $classes[] = 'flexible-content-template';
    return $classes;
} );



/**
 * Remove entry header
 */
remove_action( 'genesis_entry_header', 'genesis_do_post_title' );



/**
 * Force full width layout
 */
add_filter( 'genesis_pre_get_option_site_layout', '__genesis_return_full_width_content' );



/**
 * Remove breadcrumbs
 */
remove_action( 'genesis_before_loop', 'genesis_do_breadcrumbs' );



/**
 * Add ACF Flexible Content. See inc/layout.php
 *
 * @uses ym_flexible_content();
 */
remove_action( 'genesis_loop', 'genesis_do_loop' );
add_action( 'genesis_after_header', 'ym_flexible_content' );



genesis();

https://make.wordpress.org/core/2016/11/03/post-type-templates-in-4-7/

2
Joe Dooley