Як приховати все у метабоксі PUBLISH, окрім кнопки "Перемістити до кошика" та "PUBLISH"


10

У мене є власний тип публікації (називається контактами). Оскільки цей тип публікації не працює як допис, я не хочу показувати ЗБЕРЕГТИ ПРОЕКТ, ПЕРЕДАЧА, Статус, видимість або дата публікації.

Єдині варіанти, які я хочу показати, - це кнопки PUBLISH & Move to Trash.

Чи є спосіб приховати ці інші варіанти? Якщо ні, то як створити нову PUBLISH & Перемістити у кошик, яку я можу додати до нового метаполе?

Відповіді:


14

Ви можете просто приховати параметри за допомогою CSS. Це додасть відображення: жодного стилю до різного та незначних публікуючих дій на сторінках post.php та post-new.php. Він перевіряє певний тип публікації, оскільки всі типи публікацій використовують ці два файли.

function hide_publishing_actions(){
        $my_post_type = 'POST_TYPE';
        global $post;
        if($post->post_type == $my_post_type){
            echo '
                <style type="text/css">
                    #misc-publishing-actions,
                    #minor-publishing-actions{
                        display:none;
                    }
                </style>
            ';
        }
}
add_action('admin_head-post.php', 'hide_publishing_actions');
add_action('admin_head-post-new.php', 'hide_publishing_actions');

Брайан - Дякую за швидку відповідь. Я спробував функцію, замінивши "POST_TYPE" на ім'я користувацького типу публікації (контакти), але нічого не видаляється, коли я переходжу на редагування / додавання нових сторінок.
katemerart

Перевірте мою останню редакцію. Це має вирішити проблему. :)
Брайан Фегтер

Це геніально - це відкрило абсолютно новий спосіб видалення речей, які я не хочу показувати !! Дуже дякую.
katemerart

Радий допомогти :)
Брайан Фегтер

1
Просто для того, щоб зазначити: ви можете видалити рівень відступу для свого коду, просто зробивши його if ( $post->post_type != $my_post_type ){ return; }на початку. Не потрібно мати весь код у ifзаголовку.
Піт

1

У цьому прикладі ви можете легко встановити, для яких типів публікацій потрібно приховати параметри публікації, приклад приховує їх для типу вбудованих горщиків типу pageта спеціального типу публікації cpt_portfolio.

/**
 * Hides with CSS the publishing options for the types page and cpt_portfolio
 */
function wpse_36118_hide_minor_publishing() {
    $screen = get_current_screen();
    if( in_array( $screen->id, array( 'page', 'cpt_portfolio' ) ) ) {
        echo '<style>#minor-publishing { display: none; }</style>';
    }
}

// Hook to admin_head for the CSS to be applied earlier
add_action( 'admin_head', 'wpse_36118_hide_minor_publishing' );

Важливе оновлення

Я також пропоную вам примусити статус публікації "Опубліковано", щоб уникнути збереження публікацій як чернеток:

/**
 * Sets the post status to published
 */
function wpse_36118_force_published( $post ) {
    if( 'trash' !== $post[ 'post_status' ] ) { /* We still want to use the trash */
        if( in_array( $post[ 'post_type' ], array( 'page', 'cpt_portfolio' ) ) ) {
            $post['post_status'] = 'publish';
        }
        return $post;
    }
}

// Hook to wp_insert_post_data
add_filter( 'wp_insert_post_data', 'wpse_36118_force_published' );
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.