PHP: WordPress API колдонуп, баракчаларды тизмектөө үчүн кыска код түзүңүз

WordPress PHP

Биз азыр ишкананын кардары үчүн бир топ татаал ишке ашыруунун үстүндө иштеп жатабыз. Сайт WordPressте курулуп жатат, бирок бир нече коңгуроо жана ышкырык бар. Көбүнчө ушул түрдөгү жумуштарды аткарып жатканда, кийинчерээк репурпозациялоо үчүн колдонуучунун кодун башка сайттарга сактап койгум келет. Бул учурда, мен ушунчалык пайдалуу функция деп ойлоп, аны дүйнө менен бөлүшкүм келди. Биз колдонуп жатабыз Fusion Page Builder менен Avada WordPress темасы ата-энелердин темасы катары жана биздин баланын темасында колдонуучунун кодун бир аз жайылтуу.

WordPress буга чейин APIде wp_list_pages жана get_pages сыяктуу ички баракчаларды тизмектөө үчүн колдонула турган бир-эки функцияга ээ. Маселе, эгер сиз динамикалык түрдө бир топ маалымат менен тизме түзөм деп үмүттөнсөңүз, алар жетиштүү маалыматты кайтарып бербейт.

Бул кардар үчүн, алар кызматтык нускамаларын жайгаштырууну жана жумуш орундарынын тизмесин автоматтык түрдө жарыяланган күнүнө карата төмөндөө тартибинде түзүүнү каалашкан. Алар ошондой эле баракчанын үзүндүсүн көрсөтүүнү каалашкан.

Ошентип, алгач, барактын шаблонуна үзүндү колдоону кошушубуз керек болчу. Functions.php алардын темасы үчүн, биз кошумчалады:

add_post_type_support ('бет', 'үзүндү');

Андан кийин, биз суб-баракчалардын тизмесин, аларга шилтемелерди жана алар үчүн үзүндү түзө турган колдонуучунун кыска кодун катташыбыз керек болчу. Муну жасаңыз, биз колдонушубуз керек WordPress Loop. Functions.php-де биз төмөнкүлөрдү кошумчаладык:

// Тизме функциясындагы Төмөнкү баракчалардын тизмеси dknm_list_child_pages ($ atts, $ content = "") {global $ post; $ atts = shortcode_atts (массив ('ifempty' => 'Жазуулар жок', 'aclass' => ''), $ atts, 'list_subpages'); $ args = array ('post_type' => 'page', 'posts_per_page' => -1, 'post_parent' => $ post-> ID, 'orderby' => 'published_date', 'order' => 'DESC' ,); $ parent = жаңы WP_Query ($ args); if ($ parent-> have_posts ()) {$ string. = $ content. ' '; while ($ parent-> have_posts ()): $ parent-> the_post (); $ string. = ' '.get_the_title ().' '; if (has_excerpt ($ post-> ID)) {$ string. = '-' .get_the_excerpt (); } $ string. = ' '; аяктаган; } else {$ string = ' '. $ atts [' ifempty '].' '; } wp_reset_postdata (); return $ string; } add_shortcode ('list_subpages', 'dknm_list_child_pages');

Эми, балдардын шилтемесин жана үзүндүсүн камтыган баракчаларды көрсөтүү үчүн, кыска кодду бардык сайтта колдонсо болот. Колдонуу:

[list_subpages aclass = "button" ifempty = "Кечиресиз, бизде учурда эч кандай ачылыш жок."] Жумуш тизмеси [/ list_subpages]

Натыйжада, жарыяланган жумуштардын жакшы, таза ирээтсиз тизмеси пайда болду, бул алардын карьералык баракчасынын алдындагы балдар баракчалары.

Эгерде жарыяланган жумуштар жок болсо (балдар баракчалары жок), анда төмөнкүлөр жарыяланат:

Кечиресиз, учурда бизде эч кандай жумуш ачылышы жок.

Эгерде жарыяланган жумуштар болсо (балдар баракчалары), анда төмөнкүлөр жарыяланат:

Жумуш тизмеси:

Эмне деп ойлойсуң?

Бул сайт спам азайтуу Akismet колдонот. Сиздин комментарий маалымат кандайча иштелишин Үйрөнүү.