Czy wiele niestandardowych typów postów może współdzielić niestandardową taksonomię?

23

Zastanawiam się nad przebudową strony drupal w wordpress i wciąż skupiam się na różnicach między systemami - szczególnie cck / field i niestandardowymi typami treści oraz różnymi sposobami korzystania z taksonomii.

Chciałbym wiedzieć, czy dwa niestandardowe typy treści mogą współdzielić jedną niestandardową taksonomię. W drupal mogę ograniczyć publikowanie określonego typu treści do grupy użytkowników, a następnie publikowanie może mieć taksonomię, która jest współdzielona tylko z jednym lub większą liczbą innych typów treści (ale nie ze wszystkimi typami).

Pomijając aspekt użytkownika, który wydaje się możliwy dzięki scoper rola, czy możesz to zrobić za pomocą wordpress? Widziałem tylko niestandardowy typ zawartości z niestandardową taksonomią, ale nie ma sposobu, aby udostępnić daną taksonomię między co najmniej 2 niestandardowymi typami treści bez odtworzenia jej w dwóch miejscach lub włączenia jej globalnie za pomocą kategorii / tagów ...

Dzięki, -Chad.

Chad Dupuis
źródło

Odpowiedzi:

15

Podział taksonomii między CPT

Chciałbym wiedzieć, czy dwa niestandardowe typy treści mogą współdzielić jedną niestandardową taksonomię.

Prosty powiedział: Tak, mogą .

Jak udostępnić

Jak opracować szczegółowo w tym blogu , należy zawsze zarejestrować niestandardowe taksonomii i typy pocztowe do siebie tak wcześnie, jak to możliwe.

Zawiń proces rejestracji w funkcję zaczepioną na inithaku z domyślnym priorytetem.

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

Nie ma znaczenia, czy użyjesz drugiego argumentu, register_taxonomy()czy użyjesz register_taxonomy_for_object_type(), ponieważ oba robią to samo: biorą $GLOBALS['wp_taxonomies']tablicę i przypisują jej obiekt typu post (typ).

Ważna uwaga

Upewnij się tylko, że rejestrujesz CT i CPT podczas rejestracji. W przeciwnym razie nie będziesz mieć dostępu do tego połączenia podczas przechwytywania zapytań.

kajzer
źródło
2
Jednym z problemów, które znalazłem, jest to, że administrator nie wyświetla poprawnie liczby postów na CPT, gdy udostępniony CT jest używany gdzie indziej.
Meetai.com,
Nie jestem pewien, czy podążę. Pytanie dotyczy rejestracji CT na wiele CPT. Ta odpowiedź wygląda na to, że przedstawia rejestrację CPT i CT dla siebie nawzajem w obie strony.
Ten Brazylijczyk
4

Z Kodeksu:

taksonomie

(tablica) (opcjonalnie) Tablica zarejestrowanych taksonomii, takich jak kategoria lub znacznik postu, które będą używane z tym typem postu. Można to wykorzystać zamiast dzwonić register_taxonomy_for_object_type()bezpośrednio. Niestandardowe taksonomie nadal wymagają rejestracji register_taxonomy().

Po zarejestrowaniu typu posta przypisujesz obsługiwane przez niego taksonomie lub register_taxonomy_for_object_type()w innym miejscu dodasz taksonomię do typu postu.

Możesz przypisać taksonomię do dowolnej liczby typów postów, jak chcesz. Taksonomie nie są powiązane z określonym typem postu.

s_ha_dum
źródło
4

Byłem w stanie to łatwo osiągnąć, przekazując tablicę wszystkich niestandardowych typów postów, które chcę udostępnić taksonomię, więc mój kod wyglądał tak:

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 ) );   
}
Kevin Ochieng
źródło
To powinna być zaakceptowana odpowiedź IMO. Zwięzłe i na temat.
FaCE