fxfuture
  • 0
Новичок

Настроить экран редактирования сообщений для пользовательских типов сообщений?

  • 0

Каков наилучший способ полностью настроить экран администратора редактирования сообщения для определенного пользовательского типа сообщения?

Я уже в некоторой степени настроил его при создании пользовательского типа сообщения — добавил дополнительные поля и т. д., но я хочу удалить многие элементы, такие как постоянные ссылки, предварительный просмотр сообщения, отключить быстрое редактирование и т. д.

Share
  1. Ответы на некоторые из этих вопросов приведены здесь: Установить параметры экрана администратора по умолчанию и порядок метабоксов.

    Чтобы удалить метабокс постоянной ссылки:

    function my_remove_meta_boxes() {
        remove_meta_box('slugdiv', 'my-post-type', 'core');
    }
    add_action( 'admin_menu', 'my_remove_meta_boxes' );
    

    Кроме того, вам придется скрыть #edit-slug-box с помощью css или javascript. см.: Загрузка внешних сценариев в администраторе, но ТОЛЬКО для определенного типа сообщений?

    Чтобы отключить быстрое редактирование:

    function my_remove_actions( $actions, $post ) {
        if( $post->post_type == 'my-post-type' ) {
            unset( $actions['inline hide-if-no-js'] );
        }
        return $actions;
    }
    add_filter( 'post_row_actions', 'my_remove_actions', 10, 2 );
    

    Чтобы изменить ссылку для предварительного просмотра, вы можете использовать фильтр preview_post_link, но он работает только тогда, когда пост еще не опубликован. Таким образом, решением было бы удалить мета-поле отправки и добавить свой собственный модифицированный:

    function my_replace_submit_meta_box() {
        remove_meta_box('submitdiv', 'my-post-type', 'core');
        add_meta_box('submitdiv', __('Publish'), 'custom_post_submit_meta_box', 'my-post-type', 'side', 'core');
    }
    add_action( 'admin_menu', 'my_replace_submit_meta_box' );
    
    function custom_post_submit_meta_box() { // a modified version of post_submit_meta_box() (wp-admin/includes/meta-boxes.php, line 12)
        ...
    }
    
    • 0
    • Большое спасибо. Долго искал ответ на этот вопрос! Кроме того, есть ли способ изменить ссылку на кнопку «Предварительный просмотр» в поле «Опубликовать»? Я хочу, чтобы он ссылался на mysite.com/video?id=’id публикации’ или открывал лайтбокс с помощью видеоплеера.

      • 0
    • Привет еще раз — на самом деле я не могу заставить работать ни один из тех фрагментов кода, которые вы предоставили. Метабокс постоянной ссылки просто отключает сохранение изменений в постоянной ссылке, а не скрывает ее, и я вообще не могу отключить ссылку быстрого редактирования. Есть идеи?

      • 0
    • Я отредактировал свой ответ. Я только что протестировал рекламу кода быстрого редактирования, она работает. Вы говорите о ссылке быстрого редактирования под названием поста: wp-admin/edit.php?post_type=sis_course, верно?

      • 0
    • Отлично, я посмотрю дополнительную информацию, которую вы разместили. Я смог скрыть быстрое редактирование, изменив «hierarchical» => false в моем пользовательском типе записи. Кажется, это не имеет значения, так как я все равно использую плагин Post Types Order, чтобы заказать его. Спасибо!

      • 0
    • Замена мета-поля отправки сработала отлично! На самом деле это должно было включать $post между скобками в вашей функции, т.е. custom_post_submit_meta_box($post). Итак, все три отсортированы 🙂 Есть еще немного настроек, которые я хочу сделать как для сообщений списка, так и для экрана редактирования сообщений — знаете ли вы справочное руководство, в котором подробно описано, как удалить/заменить все различные элементы?

      • 0

Оставить ответ

You must login to add an answer.