PHP: از API وردپرس برای ساختن کد کوتاه برای لیست زیرمجموعه ها استفاده کنید

وردپرس PHP

ما هم اکنون روی یک پیاده سازی کاملاً پیچیده برای مشتری سازمانی کار می کنیم. این سایت در وردپرس در حال ساخت است اما دارای صدای زنگ و سوت است. غالباً ، وقتی این نوع کارها را انجام می دهم ، دوست دارم کد سفارشی را برای استفاده مجدد از آنها در سایتهای دیگر ذخیره کنم. در این مورد ، من فکر کردم که چنین عملکرد مفیدی است ، می خواستم آن را با دنیا به اشتراک بگذارم. ما از قالب وردپرس Avada با Fusion Page Builder به عنوان یک تم والدین ، ​​و استفاده از مقدار زیادی کد سفارشی در طرح زمینه کودک ما.

وردپرس قبلاً چندین توابع در API خود دارد که می تواند برای لیست زیرمجموعه ها مانند wp_list_pages و get_pages استفاده شود. مشکل این است که اگر شما می خواهید به صورت پویا لیستی با دسته ای از اطلاعات ایجاد کنید ، آنها اطلاعات کافی را بر نمی گردانند.

برای این مشتری ، آنها می خواستند شرح وظایف خود را ارسال کنند و لیست کارهایی را که به طور خودکار تا تاریخ انتشار خود به ترتیب نزولی ایجاد می شوند ، داشته باشند. آنها همچنین می خواستند گزیده ای از صفحه را به نمایش بگذارند.

بنابراین ، ابتدا باید پشتیبانی گزیده ای را به الگوی صفحه اضافه کنیم. در functions.php برای تم آنها ، ما اضافه کردیم:

add_post_type_support ('صفحه' ، 'متن')؛

سپس ، ما باید یک کد کوتاه سفارشی ثبت کنیم که لیستی از زیرصفحه ها ، پیوندها به آنها و گزیده ای از آنها را ایجاد کند. این کار را انجام دهید ، ما باید از حلقه وردپرس. در توابع.php اضافه کردیم:

// زیرشاخه های لیست را در یک تابع List 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' => 'انتشار_تاريخ'، 'سفارش' => 'DESC' ،)؛ $ parent = WP_Query جدید ($ args) ؛ if ($ parent-> have_posts ()) {$ string. = $ content. ' '؛ while ($ parent-> have_posts ()): $ parent-> the_post ()؛ $ string. = ' '. عنوان () را دریافت کنید.' '؛ if (has_excerpt ($ post-> ID)) {$ string. = '-' .get_the_excerpt ()؛ } رشته $. = ' '؛ در همین حال } دیگری {$ string = ' $ atts ['ifempty']. " '؛ } wp_reset_postdata ()؛ رشته $ را برگردانید ؛ } add_shortcode ('list_subpages'، 'dknm_list_child_pages')؛

اکنون ، کد کوتاه را می توان در سرتاسر سایت پیاده سازی کرد تا صفحات کودک را با یک لینک و متن نمایش دهد. کاربرد:

[list_subpages aclass = "button" ifempty = "با عرض پوزش ، ما در حال حاضر هیچ جای شغلی نداریم."] لیست مشاغل [/ لیستهای زیرمجموعه]

نتیجه یک لیست مرتب نشده خوب و تمیز از مشاغل منتشر شده است که صفحات کودک زیر صفحه شغلی آنها است.

اگر هیچ شغلی منتشر نشده باشد (هیچ صفحه کودک) ، آن را منتشر می کند:

متأسفیم ، در حال حاضر هیچ فرصت شغلی نداریم.

اگر مشاغلی منتشر شده باشد (صفحات کودک) ، این موارد را منتشر می کند:

لیست مشاغل:

شما چه فکر میکنید؟

این سایت از Akismet برای کاهش هرزنامه استفاده می کند. بدانید که چگونه نظر شما پردازش می شود.