PHP: WordPress API колдонуп, баракчаларды тизмектөө үчүн кыска код түзүңүз
Биз азыр ишкананын кардары үчүн бир топ татаал ишке ашыруунун үстүндө иштеп жатабыз. Сайт WordPressте курулуп жатат, бирок бир нече коңгуроо жана ышкырык бар. Көбүнчө ушул түрдөгү жумуштарды аткарып жатканда, кийинчерээк репурпоздоо үчүн колдонуучунун кодун башка сайттарга сактап койгум келет. Бул учурда, мен аны ушунчалык пайдалуу функция деп ойлоп, аны дүйнө менен бөлүшкүм келди. Биз колдонуп жатабыз Fusion Page Builder менен Avada WordPress темасы ата-энелердин темасы катары жана биздин баланын темасында колдонуучунун кодун бир аз жайылтуу.
WordPress буга чейин APIде wp_list_pages жана get_pages сыяктуу ички баракчаларды тизмектөө үчүн колдонула турган бир-эки функцияга ээ. Маселе, эгер сиз динамикалык түрдө бир топ маалымат менен тизме түзүүнү кааласаңыз, анда алар жетиштүү маалыматты кайтарып бербейт.
Бул кардар үчүн, алар кызматтык нускамаларын жайгаштырууну жана жумуш орундарынын тизмесин автоматтык түрдө жарыяланган күнүнө карата төмөндөө тартибинде түзүүнү каалашкан. Алар ошондой эле баракчанын үзүндүсүн көрсөтүүнү каалашкан.
Ошентип, алгач, барактын шаблонуна үзүндү колдоону кошушубуз керек болчу. Functions.php алардын темасы үчүн, биз кошумчалады:
add_post_type_support ('бет', 'үзүндү');
Андан кийин, биз суб-баракчалардын тизмесин, аларга шилтемелерди жана алар үчүн үзүндү түзө турган колдонуучунун кыска кодун катташыбыз керек болчу. Муну жасаңыз, биз колдонушубуз керек WordPress цикли. 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]
Натыйжада, жарыяланган жумуштардын жакшы, таза ирээтсиз тизмеси пайда болду, бул алардын карьералык баракчасынын алдындагы балдар баракчалары.
Эгерде жарыяланган жумуштар жок болсо (балдар баракчалары жок), анда төмөнкүлөр жарыяланат:
Кечиресиз, учурда бизде эч кандай жумуш ачылышы жок.
Эгерде жарыяланган жумуштар болсо (балдар баракчалары), анда төмөнкүлөр жарыяланат:
Жумуш тизмеси:
- Акыркы балдардын бети - Балдар баракчасынан үзүндү
- Кийинки баланын бети - Балдар баракчасынан үзүндү
- Кийинки баланын бети - Балдар баракчасынан үзүндү