web-dev-qa-db-fra.com

Supprimer le titre de l’archive et l’introduction de l’archive Champs de texte sur les pages d’archives de catégories et de balises dans WordPress Admin avec le cadre Genesis

Je ne parviens pas à supprimer les champs Archive Headline et Archive Intro Text de l'écran d'archivage de catégories et de balises dans WP Admin.

 Image of the Category Archive Settings - Archive Headline and Archive Intro Text 

Sur les pages d'archives de catégories et de balises, il y a les champs standard de titre et de description, que le client utilisera à la place du titre et du texte d'introduction de l'archive. Afin d’éviter toute confusion, je souhaite supprimer les champs de texte d’archive et de texte d’introduction d’archive de WP Admin.

Dans les fichiers de base du framework Genesis, j'ai trouvé ce bit qui traînait dans cpt-archive-settings.php:

public function archive_box() {
    ?>
    <p><?php printf( __( 'View the <a href="%s">%s archive</a>.', 'genesis' ), get_post_type_archive_link( $this->post_type->name ), $this->post_type->name ); ?></p>

    <table class="form-table">
    <tbody>

        <tr valign="top">
            <th scope="row"><label for="<?php $this->field_id( 'headline' ); ?>"><b><?php _e( 'Archive Headline', 'genesis' ); ?></b></label></th>
            <td>
                <p><input class="large-text" type="text" name="<?php $this->field_name( 'headline' ); ?>" id="<?php $this->field_id( 'headline' ); ?>" value="<?php echo esc_attr( $this->get_field_value( 'headline' ) ); ?>" /></p>
                <p class="description"><?php _e( 'Leave empty if you do not want to display a headline.', 'genesis' ); ?></p>
            </td>
        </tr>

        <tr valign="top">
            <th scope="row"><label for="<?php $this->field_id( 'intro_text' ); ?>"><b><?php _e( 'Archive Intro Text', 'genesis' ); ?></b></label></th>
            <td>
                <?php wp_editor( $this->get_field_value( 'intro_text' ), $this->settings_field . "-intro-text", array( 'textarea_name' => $this->get_field_name( 'intro_text' ) ) ); ?>
                <p class="description"><?php _e( 'Leave empty if you do not want to display any intro text.', 'genesis' ); ?></p>
            </td>
        </tr>

    </tbody>
    </table>

    <?php
}

J'ai essayé le code suivant dans mon fichier functions.php pour essayer de supprimer les champs Archive Headline et Archive Intro Text. Je n'ai pas encore trouvé de solution pour le supprimer des écrans de modification des archives de catégories et d'étiquettes, mais je me suis dit que je commencerais par la fonction de base.

Voici ce que j'ai obtenu après avoir consulté le codex WordPress pour remove_action ainsi que remove_meta_box:

add_action( 'admin_menu', 'remove_archive_intro_headline' );
function remove_archive_intro_headline(){
    remove_meta_box( 'archive_box', 'admin_menu', 'normal' );
}

Malheureusement, cela n'a pas fonctionné. Existe-t-il une autre méthode qui me permet de supprimer les champs Archive Headline et Archive Intro Text de WP admin sur les écrans de modification de la catégorie et de l'archive de balises? Toute aide serait très appréciée! Je vous remercie!

2
Melinda

Ce n'est pas à cause du archive_box dans cpt-archive-settings.php mais à cause de genesis_taxonomy_archive_options dans genesis/lib/admin/term-meta.php.

Vous pouvez le supprimer en utilisant les éléments suivants dans le thème enfant:

remove_action( 'admin_init', 'genesis_add_taxonomy_archive_options' );

Mise à jour:

Ces paramètres apparaissent en raison de l'action genesis_add_taxonomy_archive_options attachée à admin_init hook.

add_action( 'admin_init', 'genesis_add_taxonomy_archive_options' );

Qui est encore comme ça

function genesis_add_taxonomy_archive_options() {

  foreach ( get_taxonomies( array( 'public' => true ) ) as $tax_name ) {
        add_action( $tax_name . '_edit_form', 'genesis_taxonomy_archive_options', 10, 2 );
    }

}

Donc, fondamentalement, il est relié à {$taxonomy}_edit_form .

Une autre façon

Ce qui suit fonctionne même s'il est utilisé dans plugin/theme.

add_action( 'admin_init', 'wpse_add_taxonomy_archive_options', 11 );

function wpse_add_taxonomy_archive_options() {

    foreach ( get_taxonomies( array( 'public' => true ) ) as $tax_name ) {
        remove_action( $tax_name . '_edit_form', 'genesis_taxonomy_archive_options', 10, 2 );
    }

}

Merci à @Mark .

2
bravokeyl