PHP: Úsáid an WordPress API chun Shortcode a Thógáil chun Fo-leathanaigh a Liostú

WordPress PHP

Táimid ag obair ar chur i bhfeidhm casta go leor do chliant fiontar anois. Tá an suíomh á thógáil i WordPress ach tá tonna cloigíní agus feadóga ann. Go minic, nuair a bhíonn an cineál seo oibre á dhéanamh agam, is maith liom an cód saincheaptha a shábháil lena athchur níos déanaí ar shuímh eile. Sa chás seo, shíl mé gur feidhm úsáideach í seo, theastaigh uaim é a roinnt leis an domhan. Táimid ag úsáid an Téama Avada WordPress leis an Tógálaí Leathanach Comhleá mar théama tuismitheora, agus go leor cód saincheaptha á n-úsáid inár dtéama linbh.

Tá cúpla feidhm ag WordPress cheana féin ina API is féidir a úsáid chun fo-leathanaigh a liostáil, cosúil le wp_list_pages agus get_pages. Is í an fhadhb atá ann ná nach dtugann siad a ndóthain faisnéise ar ais má tá tú ag súil le liosta a chruthú go dinimiciúil le dornán faisnéise.

Maidir leis an gcustaiméir seo, theastaigh uathu tuairiscí poist a phostáil agus gintear liosta na n-oscailtí poist go huathoibríoch in ord íslitheach faoin dáta foilsithe. Theastaigh uathu freisin sliocht den leathanach a thaispeáint.

Mar sin, ar dtús, bhí orainn tacaíocht sleachta a chur le teimpléad an leathanaigh. In functions.php dá dtéama, chuireamar leis:

add_post_type_support ('leathanach', 'sliocht');

Ansin, b’éigean dúinn aicearra saincheaptha a chlárú a ghinfeadh liosta na bhfo-leathanaigh, naisc leo, agus an sliocht dóibh. Déan é seo, ní mór dúinn an Lúb WordPress. In functions.php, chuireamar leis:

// Liosta Fotheidil i bhfeidhm Liosta dknm_list_child_pages ($ atts, $ content = "") {global $ post; $ atts = shortcode_atts (array ('ifempty' => 'Gan Taifid', 'aclass' => ''), $ atts, 'list_subpages'); $ args = array ('post_type' => 'leathanach', 'posts_per_page' => -1, 'post_parent' => $ post-> ID, 'orderby' => 'publ_date', 'order' => 'DESC' ,); $ tuismitheoir = WP_Query nua ($ args); más rud é ($ parent-> have_posts ()) {$ string. = $ ábhar. ' '; fad ($ parent-> have_posts ()): $ parent-> the_post (); $ string. = ' '.get_the_title ().' '; más rud é (has_excerpt ($ post-> ID)) {$ string. = '-' .get_the_excerpt (); } $ string. = ' '; i ndeireadh na dála; } eile {$ string = ' '. $ atts [' ifempty '].' '; } wp_reset_postdata (); filleadh $ string; } add_shortcode ('liosta_subpages', 'dknm_list_child_pages');

Anois, is féidir an aicearra a chur i bhfeidhm ar fud an láithreáin chun nasc agus sliocht a thaispeáint do leathanaigh an linbh. Úsáid:

[list_subpages aclass = "button" ifempty = "Tá brón orainn, níl aon oscailtí poist againn faoi láthair."] Liosta Poist [/ list_subpages]

Is é an toradh atá air seo liosta deas, glan neamhordáilte de na poist foilsithe, ar leathanaigh leanaí iad faoina leathanach gairme.

Murar foilsíodh aon phoist (gan aon leathanaigh do leanaí), foilseoidh sé:

Tá brón orainn, níl aon oscailtí poist againn faoi láthair.

Má foilsíodh poist (leathanaigh leanaí), foilseoidh sé:

Liosta Poist:

Cad é do bharúil?

Úsáideann an suíomh seo Akismet chun spam a laghdú. Foghlaim conas a dhéantar próiseáil ar do chuid tráchta.