Jak dodać tagi do niestandardowego typu postu?


28

Mam niestandardowy typ postu o nazwie portfolioi próbuję dodać do niego taksonomię tagów. Jak to zrobić?


@chifliiiii, jeśli to zrobię, kategorie i tagi są takie same jak te używane dla postów. Jak uzyskać kategorie i tagi, które są wyłączne dla nowego typu postu?
Troy Templeman

@chifliiiii Jak wyświetlić tagi w szablonie?
Max.

Odpowiedzi:


15

W ten sposób: (tam, gdzie jest napisane, „portfolio” to miejsce, w którym taksonomia jest rejestrowana jako typ postu

add_action( 'init', 'create_tag_taxonomies', 0 );

//create two taxonomies, genres and tags for the post type "tag"
function create_tag_taxonomies() 
{
  // Add new taxonomy, NOT hierarchical (like tags)
  $labels = array(
    'name' => _x( 'Tags', 'taxonomy general name' ),
    'singular_name' => _x( 'Tag', 'taxonomy singular name' ),
    'search_items' =>  __( 'Search Tags' ),
    'popular_items' => __( 'Popular Tags' ),
    'all_items' => __( 'All Tags' ),
    'parent_item' => null,
    'parent_item_colon' => null,
    'edit_item' => __( 'Edit Tag' ), 
    'update_item' => __( 'Update Tag' ),
    'add_new_item' => __( 'Add New Tag' ),
    'new_item_name' => __( 'New Tag Name' ),
    'separate_items_with_commas' => __( 'Separate tags with commas' ),
    'add_or_remove_items' => __( 'Add or remove tags' ),
    'choose_from_most_used' => __( 'Choose from the most used tags' ),
    'menu_name' => __( 'Tags' ),
  ); 

  register_taxonomy('tag','portfolio',array(
    'hierarchical' => false,
    'labels' => $labels,
    'show_ui' => true,
    'update_count_callback' => '_update_post_term_count',
    'query_var' => true,
    'rewrite' => array( 'slug' => 'tag' ),
  ));
}
?>

@JoeBobby prawdopodobnie warto zajrzeć na stronę Kodeksu WordPress, aby zarejestrować taksonomie, aby lepiej poznać wszystkie dostępne opcje: codex.wordpress.org/Function_Reference/register_taxonomy
Stephen S.

8
Tylko uwaga, że ​​tworzy to zupełnie nową taksonomię zwaną „tagiem” zamiast dodawać istniejącą taksonomię „post_tag” do niestandardowego typu postu.
Jake

@chifliiiii jak zdobyć te tagi w postie pojedynczej stronie z linkami do tagów, jak stworzyć szablon dla strony tagów
Dinesh

1
Zgadzam się z Jake'em, wydaje mi się, że to nie rozwiązuje problemu. Odpowiedź @Marcus powinna być oznaczona jako zaakceptowana.
Craig Wayne,

58

Lub po prostu dodaj:

'taxonomies' => array('post_tag')

Tablica zarejestrowanych taksonomii, takich jak categorylub post_tagktó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().

do $argstablicy w functions.phppliku -file, w której tworzysz niestandardowy typ wpisu za pomocą register_post_type().


2
Dodaj wyjaśnienie do swojej odpowiedzi: dlaczego to może rozwiązać problem?
fuxia

5

Użyj tego:

add_action( 'init', 'gp_register_taxonomy_for_object_type' );
function gp_register_taxonomy_for_object_type() {
    register_taxonomy_for_object_type( 'post_tag', 'portfolio' );
};

1

Metoda 1 (z powyższych odpowiedzi: https://wordpress.stackexchange.com/a/106211/38771 )

Różne typy postów będą używać tych samych danych „Tagów” ​​co domyślny typ „postów”.

  • Korzyści

    • Wszystko (powinno) działa natychmiast po wyjęciu z pudełka z jedną linią

    • Wszystkie twoje tagi w jednym miejscu w CMS

  • Wady

    • Zapomnij o dobrze skonstruowanym / łatwym w użyciu CMS - lista tagów na stronie niestandardowych typów postów pokaże wszystkie tagi (nie tylko tagi używane w artykułach o niestandardowych typach postów) z nieprawidłową liczbą ...
    • Zmiany w tagu wpłyną na domyślne artykuły „post”, a także na niestandardowe artykuły typu post (Usuń tag usuwa go w obu typach artykułów)
    • Trudniejsze (być może niemożliwe) ustawienie dowolnej odrębnej funkcji Tag: różne opisy, pola niestandardowe, obrazy itp. (Przynajmniej nie bez specjalnego kodowania na podstawowym kodzie Wordpress) ...

Metoda 2 (z odpowiedzi powyżej: https://wordpress.stackexchange.com/a/62263/38771 )

Różne typy postów używają różnych konfiguracji / danych „Tagów”.

  • Korzyści

    • Twórz różne / wyraźne funkcje związane z tagami : szablony interfejsu, możliwości, filtry zapytań, akcje)
    • Przypisz różne dane związane ze znacznikami : dane pól, a nawet pola niestandardowe
    • Lepsze zarządzanie tagami w CMS
      • Przykład : edytowanie / usuwanie znacznika „post” nie wpłynie na znacznik (podobnie nazwany / spowolniony) dla innych typów postów
  • Kompromis

    Trochę więcej kodu do skonfigurowania

W rzeczywistości są niezwykle potężnym sposobem grupowania różnych przedmiotów na różne sposoby. https://codex.wordpress.org/Taxonomies#Custom_Taxonomies


Oto przykład metody 1: duża strona sportowa, obejmująca wiele tematów / lig / sportów z tagami, np. „NBA”, „NHL”, „Koszykówka”, „Olimpiada”, „Sterydy”, „College” itp. powielanie i zarządzanie, co może być +100 tagami i 4 typami postów (domyślny typ postu i 3 niestandardowe typy postów), ma sens. Jeśli chodzi o wady, jeśli dane dotyczące liczby znaczników są tak wyjątkowe, można dla tego utworzyć niestandardowy widok. Jeśli chodzi o podobne niestandardowe tagi dla każdego typu postów, wydaje się, że nie ma jeszcze oczywistej potrzeby (staram się wymyślić jeden ... potrzebny przykład).
MarsAndBack

Tak, ale nie będą automatycznie istnieć różne linki bezpośrednie do różnych typów postów. Tag „play-off” będzie zawierał „/ tag / play-off” dla wszystkich typów postów. Następnie musisz skonfigurować reguły przepisywania lub użyć parametrów GET, aby utworzyć różne permalinki ... Z inną taksonomią dla każdego typu posta, każdy tag „playoffs” dla każdego typu posta będzie miał swój własny permalink, który można dostosować za pomocą szablonu Wordpress Hierarchia. To dobrze, jeśli różne strony „play-off” są różne dla NBA, NHL ... Pracowałem na stronie z tym poziomem dostosowywania taksonomii (pola niestandardowe, obraz taksonomii, opis)
PS

1
Rozumiem co mówisz. Jeśli więc wybierasz różne taksonomie znaczników na CPT, co powiesz na to, aby po dodaniu / edycji terminu w jednym podatku zmienił się on w innych podatkach, tj. Zsynchronizowanych unikalnych warunkach w różnych podatkach. np. zdefiniuj raz „Koszykówkę”, powiedzmy w Post podatku od tagów, a potem, gdy klikniesz „Zapisz”, wtedy „Koszykówka” zostanie również utworzona w inny sposób dla innych podatków dla CPT. Więc wprowadź / edytuj tag raz, a zmiana zostanie odzwierciedlona w wielu podatkach od tagów. W końcu otrzymujesz zarządzanie tagami w jednym miejscu docelowym, a także bardziej pożądaną sytuację bezpośredniego połączenia.
MarsAndBack

Tak, to byłaby świetna metoda, jeśli witryna udostępnia te same podstawowe informacje taksonomiczne (tytuł) dla wielu CPT, a także daje opcję dalszego dostosowania tych taksonomii (pola niestandardowe, obrazy itp.) Dla różnych CPT. Miły!
PS

0

Po prostu użyj tego kodu, może ci to pomóc

 add_action( 'init', 'create_client_tax' );
function create_client_tax() {
    register_taxonomy( 
            'client_tag', //your tags taxonomy
            'client',  // Your post type
            array( 
                'hierarchical'  => false, 
                'label'         => __( 'Tags', CURRENT_THEME ), 
                'singular_name' => __( 'Tag', CURRENT_THEME ), 
                'rewrite'       => true, 
                'query_var'     => true 
            )  
        );
}

Okrojona wersja zaakceptowanej już odpowiedzi. Dodaje to również zupełnie nową taksonomię zamiast korzystania z istniejącej taksonomii „post_tag”.
acidrums4,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.