web-dev-qa-db-ja.com

Genesisフレームワークを使用したWordPressアドミンのカテゴリおよびタグアーカイブページの[アーカイブの見出し]および[アーカイブのイントロテキスト]フィールドを削除する

WP Adminのカテゴリとタグのアーカイブ画面で、[アーカイブの見出し]フィールドと[アーカイブのイントロテキスト]フィールドを削除するのに問題があります。

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

カテゴリとタグのアーカイブページには、クライアントがアーカイブの見出しと紹介文の代わりに使用する標準のタイトルと説明のフィールドがあります。混乱を避けるために、WP Admin.からArchive HeadlineとArchive Intro Textのフィールドを削除したいと思います。

Genesisフレームワークのコアファイルで、私はこのビットが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
}

私はfunctions.phpファイルで以下のコードを試してArchive HeadlineとArchive Intro Textフィールドを削除しようとしました。カテゴリとタグアーカイブの編集画面でそれを削除する方法についてはまだ解決策を思いついていませんが、最初に基本機能から始めることにしました。

これが、 remove_action およびremove_meta_boxのWordPressコーデックスに相談した結果です。

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

残念ながら、うまくいきませんでした。カテゴリとタグのアーカイブ編集画面でWP adminからArchive HeadlineとArchive Intro Textのフィールドを削除できるようにする別の方法はありますか。任意の助けは大歓迎です!ありがとうございました!

2
Melinda

archive_boxcpt-archive-settings.phpのせいではなく、genesis_taxonomy_archive_optionsgenesis/lib/admin/term-meta.phpのせいです。

あなたがそれを削除することができますあなたが次の子テーマを置くならば:

remove_action( 'admin_init', 'genesis_add_taxonomy_archive_options' );

更新:

これらの設定は、genesis_add_taxonomy_archive_optionsフックにアタッチされたアクションadmin_initが原因で現れています。

add_action( 'admin_init', 'genesis_add_taxonomy_archive_options' );

これもまたこんな感じです

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 );
    }

}

だから基本的には {$taxonomy}_edit_form にフックしています。

別の方法

以下はプラグイン/テーマで使用されていても機能します。

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 );
    }

}

@Mark に感謝します。

2
bravokeyl