قالب سفارشی سازنده قالب – گزینه های شرطی ، مضامین کودک و افزونه ها

  1. 1. آشنایی با سازنده تم وردپرس
  2. 2. تعامل با Customizer Theme WordPress
  3. 3. Boilerplate Customizer Theme WordPress
  4. 4. گسترش قالب Boilerplate Customizer Theme WordPress
  5. 5. در حال خواندن: قالب سفارشی سازنده قالب – گزینه های شرطی ، مضامین کودک و افزونه ها

تاکنون مشاهده کردیم که چگونگی انجام گزینه های موضوع با استفاده از Theme Customizer Boilerplate و قلاب های آن ساده است. همانطور که احتمالاً به یاد می آورید ، مهمترین مرحله قلاب زدن به آن بود ‘thsp_cbp_options_array ‘ قلاب فیلتر کنید و آنرا از گزینه هایی که می خواهید در موضوع خود استفاده کنید ، عبور دهید.


من مطمئن هستم که شما قبلاً با قلاب های عملکرد و فیلترهای WordPress – افزونه API – و نحوه کارکرد آنها آشنا نیستید ، اما در صورت مورد ، در اینجا یک برداشت سریع (استفاده از قلاب های فیلتر به عنوان نمونه) وجود دارد. با استفاده از عملکرد add_filter می توانید عملکرد دلخواه خود را تعریف کرده و آن را به یک فیلتر موجود وصل کنید:

add_filter ($ tag ، $ function_to_add ، اولویت $ ، $ قبول_args)؛

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

// افزودن پیام اول
عملکرد my_theme_add_first_message ($ $) function
$ $. = '

پیام اول

'؛ محتوای $ را بازگردانید } add_filter ('the_content'، 'my_theme_add_first_message'، 1)؛ // افزودن پیام دوم عملکرد my_theme_add_second_message ($ $) function $ $. = '

پیام دوم

'؛ محتوای $ را بازگردانید } add_filter ('the_content'، 'my_theme_add_second_message'، 2)؛

هنگامی که شما تابع_content را به صورت single.php فراخوانی می کنید یا هر محتوای پست الگوی دیگری نمایش داده می شود ، به دنبال پیام اول ، به دنبال پیام دوم. نه به این دلیل که ترتیب آنها در این قطعه کد است ، بلکه به دلیل پارامتر اولویت اجرا است. به قلابها فکر کنید که گویا توپهای برفی هستند که از بالای تپه می چرخند و همه نوع وسایل را در راه خود انتخاب می کنند.

چگونه این امر در مورد Boilerplate Theme Customizer اعمال می شود?

می توانید وارد شوید ‘thsp_cbp_options_array ‘ از پرونده function.php موضوع خود ، با استفاده از یک تابع سفارشی (به عنوان مثال my_theme_options_array) با ارزش اولویت تنظیم شده بر روی 1. این بدان معنی است که هر عملکرد دیگری که به آن وصل شود ‘thsp_cbp_options_array ‘ قلاب فیلتر آن را بعد از عملکرد my_theme_options_array که قبلاً تعریف کرده اید انجام خواهد داد. به این مثال نگاهی بیندازید:

عملکرد my_theme_options_array ()
// استفاده از عملکرد کمکی برای به دست آوردن قابلیت پیش فرض مورد نیاز
$ thsp_cbp_capability = thsp_cbp_capability ()؛

$ گزینه = آرایه (
// شناسه بخش
'my_theme_new_section' => آرایه (

'არსებული_صشن' => نادرست,
'args' => آرایه (
'title' => __ ('بخش جدید' ، 'my_theme_textdomain'),
'اولویت' => ​​10
),
'زمینه' => آرایه (
/ *
* زمینه رادیویی
* /
'my_radio_button' => آرایه (
'setting_args' => آرایه (
'default' => 'option-2',
'type' => 'گزینه',
'قابلیت' => ​​$ thsp_cbp_capability,
'transport' => 'تازه کردن',
),
'control_args' => آرایه (
'label' => __ ("دکمه رادیویی من" ، "my_theme_textdomain"),
'نوع' => 'رادیو' ، // کنترل رادیو
'گزینه' => آرایه (
'option-1' => آرایه (
'label' => __ ("گزینه 1" ، "my_theme_textdomain")
),
'option-2' => آرایه (
'label' => __ ("گزینه 2" ، "my_theme_textdomain")
),
'option-3' => آرایه (
'label' => __ ("گزینه 3" ، "my_theme_textdomain")
)
),
'اولویت' => ​​3
)
)
)
)
)؛

گزینه های $ را برگردانید
}
add_filter ('thsp_cbp_options_array'، 'my_theme_options_array'، 1)؛

با این کار قسمت جدیدی به Theme Customizer اضافه می شود که یک قسمت در آن با نام دکمه رادیویی من است. سپس شما یا شخص دیگری برای کودک خود موضوع کودک را ایجاد می کنید و تصمیم می گیرید بخش جدیدی را نگه دارید ، اما به جای دکمه رادیویی من شاید بهتر باشد جعبه من را داشته باشید. آسان:

عملکرد my_child_theme_options_array ($ گزینه) function
// استفاده از عملکرد کمکی برای به دست آوردن قابلیت پیش فرض مورد نیاز
$ thsp_cbp_capability = thsp_cbp_capability ()؛

/ *
* این بار ، ما فقط آرایه هایی را در my_theme_new_section در آرایه گزینه های $ ویرایش می کنیم
* /
$ options ['my_theme_new_section'] ['زمینه ها'] = آرایه (
'my_checkbox_field' => آرایه (
'setting_args' => آرایه (
'پیش فرض' => درست است,
'type' => 'گزینه',
'قابلیت' => ​​$ thsp_cbp_capability,
'transport' => 'تازه کردن',
),
'control_args' => آرایه (
'label' => __ ("کادر انتخاب من" ، "my_theme_textdomain"),
'type' => 'کادر انتخاب "، // کنترل فیلد کادر انتخاب
'اولویت' => ​​2
)
)
)؛

گزینه های $ را برگردانید
}
add_filter ('thsp_cbp_options_array'، 'my_child_theme_options_array'، 2)؛

متوجه شدم که پارامتر گزینه $ $ را به my_theme_options_array منتقل نکردم و آن را در عملکرد my_child_theme_options_array انجام دادم؟ به این دلیل است که وقتی من برای اولین بار به آن وصل شدم ‘thsp_cbp_options_array ‘ قلاب من می خواستم گزینه های نمونه نمونه بویلر Customizer Theme را نادیده بگیرم. سپس ، هنگامی که دوباره از درون مضمون فرزندم به آن وصل شدم ، نمی خواهم گزینه های موضوع والدین را به طور کامل حذف کنم ، فقط آنها را کمی ویرایش کنید. به همین دلیل است که من فقط با $ گزینه ها [‘my_theme_new_section]] [‘ زمینه ها] پیام می زنم ، نه کل مجموعه گزینه های $.

البته ، شما همچنین می توانید قلاب کنید ‘thsp_cbp_options_array ‘ بیش از یک بار قلاب قلاب را از موضوع والدین خود فیلتر کنید. بیایید بگوییم که شما تصمیم گرفتید ویژگیهای افزونه را به موضوع خود اضافه نکنید و بگذارید افزونه ها آنچه را که قرار است انجام دهند را انجام دهند. اکنون می خواهید برخی از گزینه های Theme Customizer را فقط در صورت فعال بودن یک افزونه خاص نشان دهید. دوباره ، آسان:

عملکرد my_plugin_dependency_options_array ($ گزینه) function
// استفاده از عملکرد کمکی برای به دست آوردن قابلیت پیش فرض مورد نیاز
$ thsp_cbp_capability = thsp_cbp_capability ()؛

/ *
* در صورت فعال بودن "test-plugin.php" فقط افزودن my_plugin_dependency_section
* /
if (is_plugin_active ('test-plugin / test-plugin.php')) {

$ گزینه ها ['my_plugin_dependency_section'] = آرایه (
'არსებული_صشن' => نادرست,
'args' => آرایه (
'عنوان' => __ ("وابستگی افزونه" ، "my_theme_textdomain"),
'اولویت' => ​​10
),
'زمینه' => آرایه (
/ *
* قسمت متن
* /
// شناسه زمینه
'new_text_field' => آرایه (
'setting_args' => آرایه (
'default' => __ (''، 'my_theme_textdomain'),
'type' => 'گزینه',
'قابلیت' => ​​$ thsp_cbp_capability,
'transport' => 'تازه کردن',
),
'control_args' => آرایه (
'label' => __ ('فقط نشان می دهد اگر' ، 'my_theme_textdomain'),
'نوع' => 'متن' ، // کنترل فیلد متن
'اولویت' => ​​5
)
),
)
)؛

}

گزینه های $ را برگردانید
}
add_filter ('thsp_cbp_options_array'، 'my_plugin_d կախվածency_options_array'، 3)؛

می خواهید توسعه دهید افزونه عملکرد اصلی با موضوع خود استفاده شود (همانطور که باید)؟ می توانید وارد شوید ‘thsp_cbp_options_array ‘ از یکی از پرونده های افزونه خود نیز ، به همان روشی که می توانید آن را از پرونده function.php یک موضوع انجام دهید.

گزینه دیوانه را انجام نده

هر بار که گزینه هایی را به عنوان موضوعی اضافه می کنید ، باید یکی از اصول اصلی WordPress را حفظ کنید – گزینه تصمیم گیری نیست – در فکر. دور از دسترس آسان است و شروع به اضافه کردن گزینه های کاربر برای هر جزئیات جزئی که موضوع شما دارد ، اما این به نفع کسی نیست. امیدوارم این چند ترفند ، به ویژه با افزودن گزینه های وابسته به افزونه ، به شما کمک کنند گزینه های موضوع شما تا حد ممکن کم شود.

از این گذشته ، اگر موضوع شما گزینه هایی برای مواردی مانند هر شعاع مرزی از هر عنصر موجود داشته باشد ، موضوع نیست بلکه یک ویرایشگر WYSIWYG است و احتمالاً عالی نیست.

شما پیراهن سفید خریداری نمی کنید زیرا با کمی تلاش اضافی می توانید آن را به یک پارچه میز تبدیل کنید ، آن را خریداری می کنید زیرا “سفید بودن آن” را دوست دارید. مضامین وردپرس باید به همین صورت باشد ، آنها نیز باید محتوا را به روشی خاص ارائه دهند ، سعی نکنید همه کارها را از هر طریق قابل تصور انجام دهند. اگر شما یک توسعه دهنده تم هستید ، وظیفه شماست که اطمینان حاصل کنید که انتظارات کاربر همان چیزی است که باید باشد.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map