Спеціальний тип пошти - поле замовлення


14

Чи є у власному типі публікації спосіб включити поле "замовлення", яке доступне для сторінок?

Чи є якась вбудована логіка, яка заважає дублювати значення у полі "порядку"?

Ідея полягає в тому, щоб мати можливість сортувати користувацький тип публікації за вказаним користувачем замовленням, а потім в алфавітному порядку за допомогою рядкового користувацького поля.


Відповіді:


25

При оголошенні власного типу публікації за допомогою функції register_post_type потрібно додати «сторінку-атрибути» до поля підтримки, як у наступному прикладі:

register_post_type('myposttype', array(
    'supports' => array('title', 'editor', 'page-attributes'),
    'hierarchical' => false
));

Вам потрібно буде додати будь-які інші підтримувані метаполя, а також поле "підтримка", див. Http://codex.wordpress.org/Function_Reference/register_post_type для отримання додаткової інформації про поля register_post_type.

Крім того, наскільки я знаю, немає жодного побудованого способу, щоб запобігти двом одному порядку, це тому, що ви можете створити підзарядки на основі герархії (так що одна група дочірніх сторінок може мати інше впорядкування, ніж інша)


використовуючи page-attributesподання orderі поля, і parentполя. Як позбутися parentполя?
Силовий потік

Не зважай. Якщо встановити hierarchicalнеправду, це позбудеться.
Силовий потік

Мій поганий, не зрозумів, що ти теж не хочеш батьків сторінки. Я оновлю свою відповідь, щоб виключити її.
Полювання на Дейва

Привіт. У мене є цей код, але я нічого не бачу: `` `// Service Custom Add type loader ('init', 'create_post_type'); функція create_post_type () {$ supports_args = array ('title', 'editor', 'page-attributes'); register_post_type ('service', array ('labels' => array ('name' => __ ('Services'), 'singular_name' => __ ('Service'), 'support' => $ supports_args, 'hierarchical') => false), 'public' => true, 'has_archive' => true, // 'menu_position' => 2)); } `` `
Sylar

@Sylar Я розумію, що це дуже пізно, але мені здається, що ваші 'support' => $ supports_args, 'hierarchical' => false - у неправильній частині масиву. У вас це вкладено під масив міток у вашому прикладі, він повинен бути в базовому масиві, на тому ж рівні, що і 'public' => true
Дейв Хант

4

Окрім відповіді @ Дейва-Ханта, ви також можете додати фільтр, такий як наступний, для визначення користувальницького порядку - у цьому випадку в алфавітному порядку за заголовком. (Код завдяки блозі Марка Леонг в. ) Зніміть is_admin()галочку, якщо ви хочете вас звичай order_by на передньому кінці , як добре.

функція set_custom_post_types_admin_order ($ wp_query) {
  if (is_admin ()) {

    // Отримати тип запиту з запиту
    $ post_type = $ wp_query-> query ['post_type'];

    if ($ post_type == 'POST_TYPE') {

      // Значенням "orderby" може бути будь-яка назва стовпця
      $ wp_query-> set ('orderby', 'title');

      // значення "замовлення" може бути ASC або DESC
      $ wp_query-> set ('замовлення', 'ASC');
    }
  }
}
добавлення ('pre_get_posts', 'set_custom_post_types_admin_order');

Оновлення

Для попереднього збереження перевірки див. Цю відповідь: /wordpress//a/40095/4645, де обговорюються ваші варіанти. В основному, це зводиться до користувальницької jQuery, оскільки WordPress не має жодних гаків попереднього збереження.

Також (дублюючи мій попередній коментар тут для подальшої довідки), ось як відкрити поле "порядок меню" в адміністраторі, щоб його можна було редагувати користувачеві, як це стосується сторінок: Додавання стовпця "Порядок меню" до спеціального екрана адміністратора типу публікації

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