Kā pievienot kategorijas pielāgotajiem ziņu tipiem WordPress
Kategorijas pēc noklusējuma tiek izmantotas tikai ziņām. Tomēr dažos scenārijos jums var rasties vēlme tās izmantot ar pielāgotu ziņu tipu. Šajā rakstā mēs jums parādīsim, kā to var izdarīt.
Metode ar spraudni
Iesācējiem mēs iesakām izmantot Custom Post Type UI spraudni, lai izveidotu pielāgotu ziņu tipu. Izmantojot šo spraudni, jums ir iespēja sasaistīt pielāgoto ziņu tipu ar jebkuru iebūvētu vai pielāgotu taksonomiju, tostarp kategorijām. Pēc spraudņa instalēšanas dodieties uz CPT UI » Add/Edit Post Types, lai izveidotu jaunu ziņu tipu vai rediģētu esošo.

Ritiniet uz leju līdz Advanced Options, un tur jūs redzēsiet parametru Built in Taxonomies. Atzīmējiet rūtiņu pie kategorijām un saglabājiet savu ziņu tipu.

Manuāla kategoriju pievienošana pielāgotam ziņu tipam
Ja jūs izveidojāt pielāgotu ziņu tipu, pievienojot kodu failam functions.php, jums jāpievieno kategorijas kā atbalstīta taksonomija, izmantojot funkciju register_taxonomy_for_object_type().
Viss, kas no jums tiek prasīts, ir pievienot šo rindiņu pēc jūsu pielāgotā ziņu tipa reģistrācijas:
register_taxonomy_for_object_type( ‘category’, ‘movies’ );
Ja jums jau ir cita pielāgota taksonomija, piemēram, topics, pievienojiet abas šādi:
register_taxonomy_for_object_type( ‘topics’, ‘movies’ );
register_taxonomy_for_object_type( ‘category’, ‘movies’ );
Šeit ir pilna koda piemērs, kurā mēs izveidojām pielāgotu ziņu tipu ar nosaukumu «movies» ar visu iebūvēto kategoriju atbalstu.
<br />function custom_post_type() {<br /> <br />    // Set UI labels for Custom Post Type<br />    $labels = array(<br />        &#039;name&#039;                =&gt; _x( &#039;Movies&#039;, &#039;Post Type General Name&#039;, &#039;mytheme&#039; ),<br />        &#039;singular_name&#039;       =&gt; _x( &#039;Movie&#039;, &#039;Post Type Singular Name&#039;, &#039;mytheme&#039; ),<br />        &#039;menu_name&#039;           =&gt; __( &#039;Movies&#039;, &#039;mytheme&#039; ),<br />        &#039;parent_item_colon&#039;   =&gt; __( &#039;Parent Movie&#039;, &#039;mytheme&#039; ),<br />        &#039;all_items&#039;           =&gt; __( &#039;All Movies&#039;, &#039;mytheme&#039; ),<br />        &#039;view_item&#039;           =&gt; __( &#039;View Movie&#039;, &#039;mytheme&#039; ),<br />        &#039;add_new_item&#039;        =&gt; __( &#039;Add New Movie&#039;, &#039;mytheme&#039; ),<br />        &#039;add_new&#039;             =&gt; __( &#039;Add New&#039;, &#039;mytheme&#039; ),<br />        &#039;edit_item&#039;           =&gt; __( &#039;Edit Movie&#039;, &#039;mytheme&#039; ),<br />        &#039;update_item&#039;         =&gt; __( &#039;Update Movie&#039;, &#039;mytheme&#039; ),<br />        &#039;search_items&#039;        =&gt; __( &#039;Search Movie&#039;, &#039;mytheme&#039; ),<br />        &#039;not_found&#039;           =&gt; __( &#039;Not Found&#039;, &#039;mytheme&#039; ),<br />        &#039;not_found_in_trash&#039;  =&gt; __( &#039;Not found in Trash&#039;, &#039;mytheme&#039; ),<br />    );<br />     <br />    // Set other options for Custom Post Type<br />    $args = array(<br />        &#039;label&#039;               =&gt; __( &#039;movies&#039;, &#039;mytheme&#039; ),<br />        &#039;description&#039;         =&gt; __( &#039;Movie news and reviews&#039;, &#039;mytheme&#039; ),<br />        &#039;labels&#039;              =&gt; $labels,<br />        &#039;supports&#039;            =&gt; array( &#039;title&#039;, &#039;editor&#039;, &#039;excerpt&#039;, &#039;author&#039;, &#039;thumbnail&#039;, &#039;comments&#039;, &#039;revisions&#039;, &#039;custom-fields&#039; ),<br />        &#039;hierarchical&#039;        =&gt; false,<br />        &#039;public&#039;              =&gt; true,<br />        &#039;show_ui&#039;             =&gt; true,<br />        &#039;show_in_menu&#039;        =&gt; true,<br />        &#039;show_in_nav_menus&#039;   =&gt; true,<br />        &#039;show_in_admin_bar&#039;   =&gt; true,<br />        &#039;menu_position&#039;       =&gt; 5,<br />        &#039;can_export&#039;          =&gt; true,<br />        &#039;has_archive&#039;         =&gt; true,<br />        &#039;exclude_from_search&#039; =&gt; false,<br />        &#039;publicly_queryable&#039;  =&gt; true,<br />        &#039;capability_type&#039;     =&gt; &#039;page&#039;,<br />        &#039;show_in_rest&#039;        =&gt; true,<br />    );<br />     <br />    // Registering your Custom Post Type<br />    register_post_type( &#039;movies&#039;, $args );<br /><br />    // Registering Categories and tags<br />    register_taxonomy_for_object_type( &#039;category&#039;, &#039;movies&#039; );<br />    register_taxonomy_for_object_type( &#039;post_tag&#039;, &#039;movies&#039; );<br />}<br /> <br />/* Hook into the &#039;init&#039; action */<br />add_action( &#039;init&#039;, &#039;custom_post_type&#039;, 0 );<br />
Vairāku ziņu tipu attēlošana kategoriju lapā
Pēc noklusējuma kategoriju lapās WordPress vietnē tiek parādīti standarta ziņu tipi. Ja vēlaties, lai jūsu ziņu tips tiktu parādīts tajās pašās kategoriju lapās kā noklusējuma ziņas, jums jāpievieno šāds kods failam functions.php:
<br />add_filter( &#039;pre_get_posts&#039;, &#039;query_post_type&#039; );<br />function query_post_type( $query ) {<br />    if ( $query-&gt;is_main_query() &amp;&amp; !is_admin() &amp;&amp; is_category() ) {<br />        $post_type = get_query_var( &#039;post_type&#039; );<br />        if ( $post_type ) {<br />            $post_type = $post_type;<br />        } else {<br />            $post_type = array( &#039;post&#039;, &#039;movies&#039; );<br />        }<br />        $query-&gt;set( &#039;post_type&#039;, $post_type );<br />    }<br />    return $query;<br />}<br />
Neaizmirstiet nomainīt movies uz sava pielāgotā ziņu tipa nosaukumu.
Mūsu specializācija ir WordPress vietņu izstrāde un atbalsts. Sazinieties ar mums, lai saņemtu bezmaksas konsultāciju — [email protected], +371 29394520

Atbildēt
Vai vēlaties pievienoties diskusijai?Jūtieties brīvi sniegt savu ieguldījumu!