Paano Magdagdag ng Mga Sticky Post sa WordPress Custom Post Uri ng Mga Archive

Kamakailan lamang ang isa sa aming mga gumagamit ay nagtanong sa amin kung posible na idagdag ang malagkit na mga post sa mga custom na archive ng uri ng post. Bilang default, ang WordPress ay may malagkit na pag-andar na magagamit para sa mga post, ngunit hindi para sa iba pang mga uri ng post. Sa artikulong ito ipapakita namin sa iyo kung paano magdagdag ng mga sticky post sa WordPress custom post type archive. Bago kami sumulong, malamang na gusto mong malaman kung paano lumikha ng mga custom na uri ng post sa WordPress.

Pagdaragdag ng mga Sticky na Mga Post sa Mga Uri ng Custom na Post

Ang unang bagay na kailangan mong gawin ay i-install at i-activate ang plugin ng Mga Uri ng Sticky Custom Post. Pagkatapos i-activate ang plugin, pumunta sa Mga Setting »Pagbabasa at mag-scroll pababa sa seksyon ng Mga Uri ng Pasadyang Pasadyang Post. Susunod, kailangan mong piliin ang mga uri ng pasadyang post kung saan mo gustong Itigil ang pagpipiliang ito.

Ang pagpapagana ng mga sticky post para sa mga custom na uri ng post

Ngayon kung ano ang aming nagawa dito ay naidagdag namin ang mga sticky post tampok sa aming mga pasadyang mga uri ng post. Ang mga sticky post sa mga pasadyang uri ng post ay ipapakita sa front page tulad ng mga regular na sticky post.

Ang problema ay na sa pamamagitan ng default WordPress ay nagpapakita lamang ng sticky post sa home page. Hindi ito nagpapakita ng mga sticky post sa mga pahina ng archive.

Pagpapakita ng mga Sticky Post sa Mga Uri ng Custom Post Type

Nagbibigay-daan sa ipinapalagay na mayroon kang isang pasadyang uri ng post para sa Mga Review ng Pelikula na may mga sticky post na pinagana gamit ang plugin na nabanggit namin sa itaas. Ngayon gusto mo ang iyong malagkit na mga post sa mga review ng pelikula na mga uri ng post na ipapakita nang magkakaiba at sa ibabaw ng mga di-malagkit na regular na mga review ng pelikula. Ganito:

Ipinapakita ang isang malagkit na post sa isang pasadyang uri ng archive na pahina

Upang makamit ang layuning ito, ang unang bagay na kailangan mo ay isang template ng archive para sa iyong pasadyang uri ng post tulad nito: archive-post-type.php . Alamin kung paano lumikha ng custom na post ng archive na uri ng pahina. Halimbawa, kung mayroon kang isang pasadyang uri ng post pelikula-review dapat na ang iyong template ng pahina ng archive archive-movie-reviews.php . Kung wala kang isang template, lumikha ng isa. Kopyahin lamang ang mga nilalaman ng archive.php sa direktoryo ng iyong tema at idikit ang mga ito sa isang bagong file archive-your-post-type.php .

Ang susunod na hakbang ay idagdag ang code na ito sa iyong tema functions.php file:

function wpb_cpt_sticky_at_top ($ posts) {
 
     // i-apply ito sa mga archive lamang
     kung (is_main_query () && is_post_type_archive ()) {
         global $ wp_query;
 
         $ sticky_posts = get_option ('sticky_posts');
         $ num_posts = count ($ posts);
         $ sticky_offset = 0;
 
         / / Hanapin ang malagkit na mga post
         para sa ($ i = 0; $ i ID, $ sticky_posts)) {
                 $ sticky_post = $ post [$ i];
 
                 // Alisin ang sticky mula sa kasalukuyang posisyon
                 array_splice ($ posts, $ i, 1);
 
                 / Ilipat sa harap, pagkatapos ng iba pang mga stickies
                 array_splice ($ posts, $ sticky_offset, 0, array ($ sticky_post));
                 $ sticky_offset ++;
 
                 // Alisin ang post mula sa mga sticky post array
                 $ offset = array_search ($ sticky_post-> ID, $ sticky_posts);
                 unset ($ sticky_posts [$ offset]);
             }
         }
 
         / / Maghanap para sa mas malagkit na post kung kinakailangan
         kung (! walang laman ($ sticky_posts)) {
 
             $ stickies = get_posts (array (
                 'post__in' => $ sticky_posts,
                 'post_type' => $ wp_query-> query_vars ['post_type'],
                 'post_status' => 'publish',
                 'nopaging' => totoo
             ));
 
             foreach ($ stickies bilang $ sticky_post) {
                 array_splice ($ posts, $ sticky_offset, 0, array ($ sticky_post));
                 $ sticky_offset ++;
             }
         }
 
     }
 
     bumalik $ post;
 }
 
 add_filter ('the_posts', 'wpb_cpt_sticky_at_top');

 // Magdagdag ng malagkit na klase sa pamagat ng artikulo sa estilo ng malagkit na mga post

 function cpt_sticky_class ($ classes) {
 kung (is_sticky ()):
 $ classes [] = 'sticky';
 bumalik $ klase;
 tapusin kung;
 bumalik $ klase;
 }
 add_filter ('post_class', 'cpt_sticky_class'); 

Ang code sa itaas ay maglilipat ng iyong malagkit na mga post sa tuktok, at kung ang iyong tema ay gumagamit post_class () function, pagkatapos ay idagdag ito malagkit sa post na klase.

Maaari mong estilo ang iyong malagkit na mga post sa pamamagitan ng paggamit .sticky klase sa iyong stylesheet. Halimbawa:

.sticky {
 background-color: #ededed;
 background-image: url ('http://example.com/wp-content/uploads/featured.png');
 Ulit-ulitin: walang-ulitin;
 background-position: right top;
 } 

Pag-istilo ng mga malagkit na post

Umaasa kami na ang artikulong ito ay nakatulong sa iyo na magdagdag ng mga malagkit na post sa mga custom na archive ng uri ng post. Para sa mga tanong at feedback mangyaring mag-iwan ng komento sa ibaba.

Pinagmulan: Tareq Hasan