افزودن گزینه های بیشتر به سفارشی سازی پیشخوان وردپرس
سلام
دنبال کدهایی میگردم که بشه باهاش تو بخش سفارشی سازی یه تنظیماتی رو اضافه کرد. مثلا یه بخش بسازیم و از طریق اون بشه یه عکس گذاشت. یه مقاله از بخش codex توی سایت خود وردپرس خوندم ولی چیزی دستگیرم نشد!
صفحهٔ سفارشی سازی وردپرس چیست؟
سفارشی سازی نام صفحهای از مجموعه صفحات پیشخوان وردپرس است که از طریق آن میتوان تنظیمات قالب و یا سایت را انجام داد. هر پوستهای که روی سایت نصب میشود، میتواند تنظیمات خاصی را در صفحهٔ «سفارشی سازی» برای خود داشته باشد.
برنامهنویسها و توسعه دهندگان قالب وردپرس، از صفحهٔ سفارشی سازی میتوانند به عنوان صفحهٔ تنظیمات پوستهٔ خود استفاده کنند و کاربران قالب به واسطهٔ گزینههای تنظیماتی این صفحه، ظاهر و امکانات سایت را سفارشیسازی کنند.
چطور گزینههای صفحهٔ سفارشی سازی را تغییر دهیم؟
افزودن گزینههای تنظیماتی به صفحهٔ سفارشی سازی، به عنوان برنامه نویس قالب وردپرس، نیاز به داشتن دانش برنامه نویسی PHP دارد. در کنار آن باید از منابع آموزش مرکز مستندات وردپرس هم استفاده کرد و در نهایت کاری که مد نظرمان هست را انجام دهیم.
شاید در این مقاله نتوان جزء به جزء مراحلی که باید انجام گیرد را خدمت شما شرح دهم. اما قطعاً راهنما و نقطهٔ شروع خوبی است برای کسانی که میخواهند صفحهٔ سفارشی سازی را برای قالب خود کنترل کنند.
تعریف گزینههای تنظیماتی در بخش سفارشی سازی
در اولین مرحله باید دانست که توابع و کدهای صفحه سفارشی سازی را باید در سند توابع وردپرس با عنوان function.php قرار داد. پس برای این کار این سند را چه روی هاست خود و چه روی رایانهٔ شخصی باز کنید تا به سراغ مرحلهٔ بعدی برویم.
به عنوان اولین کار بهتر است سری به این صفحه از مرکز مستندات وردپرس بزنید. در آن صفحه به طور کامل راجع به تمامی کارهایی که باید صورت گیرد توضیحات لازم داده شده است. ولی باز هم به زبانی سادهتر این مراحل را در این مقاله خدمت شما عرض خواهم کرد.
اول از همه باید تابعی ایجاد کرد و درون این تابع از یک شیء استفاده کرد که تمامی گزینههای تنظیماتی به واسطهٔ آن کنترل شوند. پس خطوط کد زیر را در نظر بگیرید.
function mytheme_customize_register( $wp_customize ) { //All our sections, settings, and controls will be added here } add_action( 'customize_register', 'mytheme_customize_register' );
تابعی که تعریف شده mytheme_customize_register نام دارد و همین تابع به قلاب customize_register داده شده. حالا درون این تابعی که تعریف شده باید از شیء $wp_customize به روش زیر استفاده کنیم و تک تک گزینههای تنظیماتی را در گروههای خودشان قرار دهیم.
اما قبل از اینکه بخواهیم گزینههای تنظیماتیای را به صفحهٔ سفارشی سازی پیشخوان وردپرس اضافه کنیم، باید بدانیم که ساختار تنظیمات این بخش به چه صورتی است.
- Setting : یک بخش تنظیماتی که درون آن میتواند تعدادی Section یا بخشهای تنظیماتی قرار گیرد.
- Section : گروه بندیهای تنظیماتی که درون آن میتواند چندین Control را تک تک گزینههای تنظیماتی قرار گیرد.
- Control : کنترلها همان تک تک گزینههای تنظیماتیای هستند که ما قادر به ساخت آنها هستیم.
کد زیر برای ایجاد یک Settings است که از متد add_setting داخل همان تابع اولی که ساختیم استفاده کرده است.
$wp_customize->add_setting( 'header_textcolor' , array( 'default' => '#000000', 'transport' => 'refresh', ) );
حالا درون این Settings می خواهیم یک Section اضافه کنیم. پس از متد add_section طبق کد زیر استفاده مینماییم.
$wp_customize->add_section( 'mytheme_new_section_name' , array( 'title' => __( 'Visible Section Name', 'mytheme' ), 'priority' => 30, ) );
حالا درون همین بخش یا Section قصد گذاشتن چند تا گزینهٔ تنظیماتی داریم. این کار را با متد add_control انجام میدهیم.
$wp_customize->add_control( new WP_Customize_Color_Control( $wp_customize, 'link_color', array( 'label' => __( 'Header Color', 'mytheme' ), 'section' => 'your_section_id', 'settings' => 'your_setting_id', ) ) );
نکتهٔ جالب هنگام استفاده از Customization API این است که دیگر ما کاری به نحوهٔ ذخیره و فراخوانی گزینههای تنظیماتی و از همه مهمتر، اعتبار سنجی مقادیر و دادهها نداریم. خیلی راحت میتوان گزینههای تنظیماتی را درون بخشهای مختلف که هر بخش درون سربرگهای مختلف قرار گرفته است را در صفحهٔ سفارشی سازی پیشخوان وردپرس برای قالب خود ایجاد کرده و کاربر قالب از آنها استفاده کند.
نحوهٔ فراخوانی مقادیر گزینههای تنظیماتی
حالا اگر خواسته باشید مقادیر تک تک گزینههای تنظیماتی را در جاهایی از پوسته قراخوانی کنیم، میبایستی به سادگی از تابع get_theme_mod() بهره بگیریم. نشانوندی که این تابع میگیرد، ID یا شناسهای است که در هنگام تعریف کنترل به آن اختصاص داده شده است. حالا وردپرس مقدار آن کنترل را گرفته و در جایی که ما میخواهم خروجی میگیرد یا چاپ میکند.
جمع بندی
پس دیدیم که چقدر راحت با Theme Customization API که وردپرس آن را در نسخهٔ ۳٫۴ خود معرفی کرده است. توسعهدهندگان قالب وردپرس میتوانند از صفحهٔ تنظیماتی سفارشی سازی پیشخوان وردپرس استفاده کنند و گزینههای تنظیماتی پوستهٔ خود را در آنجا جاسازی کنند و از مقادیر ذخیرهٔ شدهٔ آن استفاده کنند. در حالتعادی ساخت صفحهٔ تنظیمات برای پوسته کار چندان سرراستی نیست. در صورتی که با این API خیلی راحتی میتوانیم صفحهٔ تنظیمات پوسته بسازیم.
و به عنوان آخرین نکته در این مقاله آموزشی که تقدیم شما عزیزان شد، میخواهم کتابچهٔ راهنمای توسعهٔ پوسته وردپرس را هم معرفی کنم که در نشانی زیر قسمت مربوط به توسعهٔ صفحهٔ سفارشی سازی قرار گرفته است. با مراجعهٔ به این صفحه هم شاید راحتتر بتوانید به درک استفاده از کدهای بخش سفارشی سازی وردپرس برسید، که گام به گام آموزش داده شده است.