Как добавить параметр "supports" для произвольного типа записи?

21 окт. 2012 г., 19:09:05
Просмотры: 33.6K
Голосов: 11

Есть ли способ добавить поддержку произвольной функции для пользовательского типа записи после того, как он был создан?

Я знаю, как создать произвольный тип записи с помощью register_post_type() и как использовать параметр supports для указания того, что должен поддерживать CPT;

'supports' => array( 'title', 'editor', 'author', 'thumbnail', 'excerpt' ,'headway-seo') 

Но для ситуаций, когда CPT регистрируется плагином или темой, есть ли способ "внедрить" элементы поддержки (манипулировать массивом support) CPT после его регистрации, используя хук/фильтр WordPress?

2
Комментарии

Просто обратите внимание, что ответ также есть на странице Codex: register_post_type...

brasofilo brasofilo
21 окт. 2012 г. 19:59:56

Только что опубликовал альтернативный подход, который может быть полезен в некоторых специфических случаях.

Christine Cooper Christine Cooper
19 окт. 2017 г. 13:33:16
Все ответы на вопрос 2
0
14

Да, существует функция add_post_type_support

Подключитесь к хуку init — поздно, после создания типов записей — и добавьте поддержку.

Например, добавление поддержки цитат (excerpts) для страниц:

<?php
add_action('init', 'wpse70000_add_excerpt', 100);
function wpse70000_add_excerpt()
{
    add_post_type_support('page', 'excerpt');
}
21 окт. 2012 г. 19:13:49
0

Альтернативный подход — использовать хук register_post_type_args и обновить массив supports.

Это особенно полезно, если у вас есть сторонние плагины, которые подключаются к аргументам CPT для отображения контента.

function wpse70000_add_author_metabox_to_cpt_book( $args, $post_type ) {
    if ($post_type != 'POST_TYPE_NAME') // укажите тип записи
        return $args;
    $args['supports'] = array( 'author' ); // задайте массив 'supports'
    return $args;
}

add_filter( 'register_post_type_args', 'wpse70000_add_author_metabox_to_cpt_book', 10, 2 );
19 окт. 2017 г. 13:32:28