بروزرسانی خودکار منوهای وردپرس
ﺯﻣﺎﻥ ﻣﻄﺎﻟﻌﻪ: 5 دقیقه

بروزرسانی خودکار منوهای وردپرس

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

در هر حال به عنوان یک توسعه دهنده ممکن است برای یک فرد وبسایتی را ساخته باشید و آن فرد به وبسایت برگه هایی را اضافه کند. در این حالت ممکن است مشتری شما با اضافه کردن و تغییر دادن فهرست وبسایت مشکلاتی داشته باشد. خب شما به عنوان توسعه دهنده باید کاری کنید که این مشکل حل شود.

در این مقاله قصد داریم در این رابطه صحبت کنیم که چگونه فهرستی را ایجاد کنیم که به صورت خودکار بروزرسانی شود. برگه های فرزند به عنوان بخش ثانویه منوهای وبسایت نمایش داده می شوند.

پیش نیازها

برای خودکار سازی فهرست های وردپرس شما نیازمند مواردی هستید که در زیر آورده شده است:

  • یک وردپرس نصب شده که در آن برگه هایی قرار دارد.
  • چند زیر برگه
  • یک کد ادیتور

شروع کار با کدها

من می خواهم کدهای مورد نظرم را در یک افزونه قرار دهم، در چنین حالتی من قادر خواهم بود که از کدها برای ایجاد تغییرات در پوسته استفاده کنم. این ویژگی به من امکان راحتی برای قرار دادن کد در افزونه و استفاده از آن در پوسته را می دهد. با این کار می توانم منوها درست در همان جایی که می‌خوام نمایش دهم. اگر پوسته شما از hook ها پشتیبانی می کند پس شما می توانید از آن ها نیز برای کدنویسی استفاده کنید.

برای آن پوسته هایی نیز که از hook ها استفاده نمی کنند تنها راه چاره قرار دادن کدها به صورت مستقیم درون خود افزونه است. در چنین حالتی به نظر می آید که بهترین کار اضافه کردن یک پوسته فرزند به پوسته اصلی‌تان و قرار دادن کدها در آن است.

قدم اول من برای این مرحله ساختن یک افزونه است. یک پوشه را در دایرکتوری مربوط به افزونه ها ایجاد کنید. این کار به ما اجازه می دهد تا کدها و فایل های بیشتری را در آینده به افزونه‌مان اضافه کنیم. خب حال باید یک فایل ایجاد کنیم و دستورهای اولیه افزونه را در آن قرار دهیم. این دستورات به صورت کامنت هستند و به وردپرس کمک می کنند تا متوجه شود که این فایل مربوط به چیست.

/**
 * Plugin Name: Automating Navigation Menus
 * Description: Plugin to Automate Updating Menus
 * Version: 1.
 * Author: Jackson
 * Author URI: http://boochyonlinepesa.co.ke
 */

فعال کردن افزونه

قدم بعدی فعال کردن افزونه است. در این آموزش من از پوسته فرزند Twenty Seventeen استفاده می کنم. پس نحوه آدرس دادن به فایل سی‌اس‌اس مربوط به وبسایت من به صورت زیر خواهد بود:

/**
 * Plugin Name: Automating Navigation Menus
 * Description: Plugin to Automate Updating Menus
 * Version: 1.
 * Author: Jackson
 * Author URI: http://boochyonlinepesa.co.ke
 Template: twentyseventeen
 Version: 1
*/
@import url("../twentyseventeen/style.css");
 */

خب حال می خواهیم یکسری کد را بنویسیم. اولین کاری که انجام می‌دهیم نوشتن یک تابع است که با استفاده از آن برگه ها به صورت سلسله مراتب  لیست می شوند. در این کد از wp_list_pages() برای لیست کردن تمام برگه ها همراه با لینک‌شان استفاده کرده‌ایم. خب با این کار ما ملزم می شویم که یک آرگومان را تعریف کنیم:

wpmap_list_pages() {
 $args = array(
 'depth' => 3
 );
}

قرار دادن depth برابر با ۳ به این معناست که حداقل لینک هایی که می شود وارد کرد باید دو مورد باشد. حال درست زیر تعریف تابع آن را با آرگومان خود فراخوانی می‌کنیم.

wpmap_list_pages() {
 $args = array(
 'depth' => 2
 );
 wp_list_pages( $args );
}

کار کردن تابع همراه با پوسته

تا به این لحظه تابع ایجاد شده در هیچ جای پوسته نمایش داده نمی شود و کار نمی کند. برای این کار باید header مربوط به قالب اصلی را کپی کرده و در پوسته فرزند قرار دهیم. در پوسته‌ای که من استفاده می‌کنم باید فایل navigation-top.php را از قالب اصلی کپی کرده و در پوسته فرزند قرار دهم.  در پوسته ای که من استفاده می کنم، کدهایی که نیاز دارند تغییر کنند مانند کدهای زیر است:

wp_nav_menu( array(
 'theme_location' => 'top',
 'menu_id' => 'top-menu',
 ) );

حال کد بالا را در یک شرط قرار می دهیم:

 if ( function_exists( 'wpmap_list_pages' ) ) {
 wpmap_list_pages();
 }
 else {
 wp_nav_menu( array(
 'theme_location' => 'top',
 'menu_id' => 'top-menu',
 ) );
 }

حال باید برگه ها را از قسمت بالا حذف کنم و به صورت بهتری آن ها را مرتب کنم. برای این کار به قسمتی که تابع را ایجاد کردیم و آرگومان را تنظیم نمودیم برگردم. آرگومان را به صورت زیر تغییر می‌دهم:

$args = array(
 'depth' => 3,
 'title_li' => '<h4>' . __( 'Menu', 'wpmap' ) . '</h4>',
 'sort_column' => 'menu-order'
);

برای هرکدام از برگه ها باید مقدار page order را تنظیم کنیم. به صورت کلی برای صفحه اصلی باید مقدار صفر و برای برگه های دیگر مقادیر بالاتر را وارد کرد.

در پایان

اگر وبسایت وردپرسی دارید که مبتنی بر برگه هاست. این مورد بهترین تکنیک برای اضافه کردن آن ها به صورت خودکار به وبسایت است. این تکنیک برای فریلنسرهایی که وبسایت مشتریانی را طراحی می کنند که برگه های زیادی را اضافه می کند بسیار مناسب است. تنها کاری که باید بکنید این است که به مشتریان‌تان بگویید که چگونه  page order را تنظیم کنند.

منبع

چه امتیازی برای این مقاله میدهید؟

خیلی بد
بد
متوسط
خوب
عالی
در انتظار ثبت رای

/@arastoo
ارسطو عباسی
کارشناس تولید و بهینه‌سازی محتوا

کارشناس ارشد تولید و بهینه‌سازی محتوا و تکنیکال رایتینگ - https://arastoo.net

دیدگاه و پرسش

برای ارسال دیدگاه لازم است وارد شده یا ثبت‌نام کنید ورود یا ثبت‌نام

در حال دریافت نظرات از سرور، لطفا منتظر بمانید

در حال دریافت نظرات از سرور، لطفا منتظر بمانید