Чи можуть кілька типів спеціальних публікацій поділитися власною систематикою?


23

Я розглядаю можливість відновлення сайту drupal в wordpress і все ще обертаю голову навколо відмінностей між системами - зокрема cck / field та користувацькі типи вмісту та різні способи використання таксономії.

Мені хотілося б знати, чи можуть два користувацькі типи вмісту ділити одну власну таксономію. У drupal я можу обмежити публікацію певного типу вмісту групою користувачів, а потім ця публікація може мати таксономію, яка ділиться лише одним або кількома іншими типами вмісту (але не всіма типами).

Залишаючи користувальницький аспект, який видається можливим при складанні ролей, чи можете це зробити за допомогою wordpress? Я бачив лише користувацький тип вмісту з власною систематикою, але не можна поділити задану систематику між двома або кількома типовими типами вмісту, не відтворюючи їх у двох місцях або вмикаючи їх у всьому світі за допомогою категорій / тегів ...

Спасибі, -Чад.

Відповіді:


15

Розподіл систематики між CPT

Мені хотілося б знати, чи можуть два користувацькі типи вмісту ділити одну власну таксономію.

Простий сказав: Так, вони можуть .

Як поділитися

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

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

register_taxonomy(
    'some_custom_tax',
    'some_post_type',
    $array_of_arguments
);
register_post_type(
    'some_post_type',
    [
        'taxonomies' => [ 'some_custom_tax' ],
        // other arguments
    ]
);

Це не має значення , якщо ви використовуєте 2 - й аргумент для register_taxonomy()або якщо ви використовуєте register_taxonomy_for_object_type(), і як зробити те ж саме: Вони приймають $GLOBALS['wp_taxonomies']масив і привласнити йому об'єкт поста типу (тип).

Важлива примітка

Просто переконайтесь, що ви реєструєте КТ та СРТ один одному при реєстрації. Інакше у вас не буде доступу до цього взаємозв’язку під час гаків запитів.


2
Одне з проблем, які я знайшов, - це те, що адміністратор неправильно відображає кількість повідомлень для CPT, коли спільний КТ використовується в іншому місці.
Meetai.com

Я не впевнений, чи слідкую за цим. Питання задає питання про реєстрацію КТ на декілька CPT. Ця відповідь виглядає так, що зображує реєстрацію CPT та КТ один на одного обома способами.
Той бразильський хлопець

4

З Кодексу:

таксономії

(масив) (необов'язково) Масив зареєстрованих таксономій, таких як категорія або post_tag, який буде використовуватися з цим типом публікації. Це можна використати замість register_taxonomy_for_object_type()прямого дзвінка . Спеціальні таксономії ще мають бути зареєстровані register_taxonomy().

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

Ви можете призначити таксономію настільки, скільки вам подобається. Таксономії не прив’язані до певного типу посади.


4

Мені вдалося досягти цього легко, передавши масив усіх типів користувацьких публікацій, якими я хочу поділитися систематикою, тому мій код виглядав так:

add_action( 'init', 'build_taxonomies', 0 );
 function build_taxonomies() {
    register_taxonomy( 'some_custom_tax', array('some_post_type_1','some_post_type_2'), array( 'hierarchical' => true, 'label' => 'Custom Tax Title', 'query_var' => true, 'rewrite' => true ) );   
}

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