drewgourley
  • 0
Мастер

Хорошо ли включать пользовательские параметры при регистрации типа сообщения?

  • 0

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

В основном, при регистрации типа поста:

$labels = array(
    'name' => _x('Drews', 'post type general name'),
    'singular_name' => _x('Drew', 'post type singular name'),
    'add_new' => __('Add New'),
    'add_new_item' => __('Add New Item'),
    'edit_item' => __('Edit Item'),
    'new_item' => __('New Item'),
    'view_item' => __('View Item'),
    'search_items' => __('Search Items'),
    'not_found' =>  __('No Items found'),
    'not_found_in_trash' => __('No Items found in Trash'), 
    'menu_name' => 'Archives'
);
$rewrite = array(
    'slug' => 'drews'
);
$args = array(
    'labels' => $labels,
    'public' => true,
    'show_in_menu' => true, 
    'query_var' => 'drews',
    'rewrite' => $rewrite,
    'has_archive' => true, 
    'hierarchical' => false,
    'supports' => array('title','editor','author','comments'),
    '_drew_made_this' => true
); 
register_post_type('drews',$args);

Обратите внимание на самую последнюю строку в моем массиве $args, для ‘_drew_made_this’ установлено значение ‘true’. Это позволяет мне обусловливать это несколькими полезными способами, вроде того, как вы бы фильтровали ‘_builtin’ при использовании get_post_types(). Как я уже сказал, я знаю, что это работает, потому что я его использую, но есть ли какой-либо потенциал для того, чтобы это сломало WordPress каким-либо странным образом.

Share
  1. Я полагаю, большой вопрос в том, следует register_post_type ли принимать пользовательские параметры. Если это не предназначено для функции, я ожидаю, что ваш код перестанет работать в будущем (но это может быть не так). Я предполагаю, что единственный способ узнать наверняка — это проследить историю этой функции и посмотреть, предназначена ли функция для поддержки пользовательских аргументов.

    • 0
  2. Вы можете добавить столько аргументов, сколько хотите, в register_post_type() $args, поскольку все они сохраняются в $wp_post_types глобальном массиве (например: $wp_post_types[type] = $args), но я не уверен, что это лучший способ. так как это может быть легко изменено в будущем, и тогда ваши функции сломаются, лучшим способом было бы создать свой собственный параметр в таблице параметров и использовать его, я имею в виду, что вы можете использовать get_post_types() и сохранить их как массив способом type => $args, и таким образом вы не зависите от основной функциональности, чтобы оставаться в текущем состоянии. Надеюсь, это сделает сцену.

    • 0

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

You must login to add an answer.