Question

J'utilise le framework Cherry sur un site WP.Il est livré avec un type de publication personnalisé qui peut être utilisé pour ajouter des « membres de l'équipe » et créer des pages pour le personnel, etc.

Je dois étendre cela afin de pouvoir ajouter des balises à chaque « membre de l'équipe » afin de pouvoir essentiellement les marquer comme travaillant dans un département a/b/c/etc.

Le type de publication personnalisé est enregistré dans le fichier theme-init.php à l'aide de ce code ;

/* Our Team */
function my_post_type_team() {
register_post_type( 'team',
    array(
        'label'               => theme_locals("our_team"),
        'singular_label'      => theme_locals("our_team"),
        '_builtin'            => false,
        // 'exclude_from_search' => true, // Exclude from Search Results
        'capability_type'     => 'page',
        'public'              => true,
        'show_ui'             => true,
        'show_in_nav_menus'   => false,
        'menu_position'       => 5,
        'menu_icon'           => ( version_compare( $GLOBALS['wp_version'], '3.8', '>=' ) ) ? 'dashicons-businessman' : '',
        'rewrite'             => array(
                                    'slug'       => 'team-view',
                                    'with_front' => FALSE,
                                ),
        'supports' => array(
                        'title',
                        'editor',
                    'thumbnail',
                    )
    )
);
}
add_action('init', 'my_post_type_team');

Je souhaite y ajouter des balises, de sorte que lorsque j'ajoute un nouveau membre de l'équipe, je puisse également l'attribuer à un service en ajoutant une balise pertinente donnée.À l'heure actuelle, la boîte de dialogue de l'éditeur de balises n'apparaît pas sur la page d'ajout/modification.

J'ai donc adapté le code ci-dessus pour inclure une taxonomie de registre comme celle-ci ;

/* Our Team */
function my_post_type_team() {
register_post_type( 'team',
    array(
        'label'               => theme_locals("our_team"),
        'singular_label'      => theme_locals("our_team"),
        '_builtin'            => false,
        // 'exclude_from_search' => true, // Exclude from Search Results
        'capability_type'     => 'page',
        'public'              => true,
        'show_ui'             => true,
        'show_in_nav_menus'   => false,
        'menu_position'       => 5,
        'menu_icon'           => ( version_compare( $GLOBALS['wp_version'], '3.8', '>=' ) ) ? 'dashicons-businessman' : '',
        'rewrite'             => array(
                                    'slug'       => 'team-view',
                                    'with_front' => FALSE,
                                ),
        'supports' => array(
                        'title',
                        'editor',
                    'thumbnail',
                    )
    )
);
register_taxonomy(
    'team_tag',
    'team',
    array(
        'hierarchical'  => false,
        'label'         => theme_locals("tags"),
        'singular_name' => theme_locals("tag"),
        'rewrite'       => true,
        'query_var'     => true
    )
);
}
add_action('init', 'my_post_type_team');

Cependant, la zone de balise n'apparaît toujours pas sur la page d'édition dans l'administrateur.

Toute aide avec cela sera grandement appréciée.

Était-ce utile?

La solution

Il semble que le problème était en partie bas à leur étant un thème-init.php dans le thème de l'enfant qui écrasait des parties du thème-init.php dans le thème du cadre parent / cerise.

J'ai résolu le problème en ajoutant le code suivant dans le thème-init-init.php de mon enfant;

register_taxonomy('team_tag', 'team', array(
    'hierarchical' => false, 
    'label' => theme_locals("tags"), 
    'singular_name' => theme_locals("tag"), 
    'rewrite' => true, 
    'query_var' => true
    )
);

Autres conseils

Essayez ceci

register_taxonomy(
        'team_tag', 
        'team', 
        array( 
            'hierarchical'  => false, 
            'label'         => __( 'Tags', CURRENT_THEME ), 
            'singular_name' => __( 'Tag', CURRENT_THEME ), 
            'rewrite'       => true, 
            'query_var'     => true 
        )  
    );

register_post_type( 'team',
    array(
        'label'               => theme_locals("our_team"),
        'singular_label'      => theme_locals("our_team"),
        '_builtin'            => false,
        // 'exclude_from_search' => true, // Exclude from Search Results
        'capability_type'     => 'page',
        'public'              => true,
        'show_ui'             => true,
        'show_in_nav_menus'   => false,
        'menu_position'       => 5,
        'menu_icon'           => ( version_compare( $GLOBALS['wp_version'], '3.8', '>=' ) ) ? 'dashicons-businessman' : '',
        'rewrite'             => array(
                                    'slug'       => 'team-view',
                                    'with_front' => FALSE,
                                ),
        'supports' => array(
                        'title',
                        'editor',
                    'thumbnail',
                    ),
        'taxonomies' => array('team_tag')
    )
);

Vous pouvez voir que j'ai ajouté le taxonomies paramètre au register_post_type fonction.

Bien que ce code devrait fonctionner, vous pouvez essayer de créer la relation plus tard, avec ceci :

add_action('init', 'add_tax_post_rel');

function add_tax_post_rel() {
    register_taxonomy_for_object_type('team_tag', 'team', 11);
}

Vous pouvez essayer ceci

add_action( 'init', 'create_client_tax' );
function create_client_tax() {
    register_taxonomy( 
            'client_tag', //your tags taxonomy
            'client',  // Your post type
            array( 
                'hierarchical'  => false, 
                'label'         => __( 'Tags', CURRENT_THEME ), 
                'singular_name' => __( 'Tag', CURRENT_THEME ), 
                'rewrite'       => true, 
                'query_var'     => true 
            )  
        );
}

Peut-être que cela vous aidera

Licencié sous: CC-BY-SA avec attribution
Non affilié à wordpress.stackexchange
scroll top