Theme Customizer Boilerplate – პირობითი პარამეტრები, ბავშვის თემები და მოდულები

  1. 1. შესავალი WordPress Theme Customizer
  2. 2. ურთიერთობა WordPress Theme Customizer- თან
  3. 3. WordPress Theme Customizer Boilerplate
  4. 4. WordPress Theme Customizer Boilerplate– ის გახანგრძლივება
  5. 5. ამჟამად კითხულობს: Theme Customizer Boilerplate – პირობითი პარამეტრები, ბავშვის თემები და მოდულები

ჯერჯერობით ვნახეთ, რამდენად მარტივია თემების პარამეტრების მოგვარება Theme Customizer Boilerplate- ისა და მისი კაკვების გამოყენებით. როგორც ალბათ გახსოვთ, ყველაზე მნიშვნელოვანი ნაბიჯი იყო ნაბიჯი “Thsp_cbp_options_array” დააჭირეთ ჰალსტუხს და მიიტანეთ ის პარამეტრები, რომელთა გამოყენება შეგიძლიათ თქვენს თემაში.


დარწმუნებული ვარ, რომ თქვენ უკვე კარგად იცნობთ WordPress- ის მოქმედებას და ფილტრის კაკლებს – მოდული API – და როგორ მუშაობს ისინი, მაგრამ, რა თქმა უნდა, აქ არის სწრაფი გადაკეთება (მაგალითად, ფილტრის კაკლების გამოყენება). თქვენ შეგიძლიათ განსაზღვროთ თქვენი პერსონალური ფუნქცია და ჩაირთოთ იგი არსებულ ფილტრში, add_filter ფუნქციის გამოყენებით:

add_filter ($ tag, $ function_to_add, $ პრიორიტეტი, $ მიღებული_არგები);

მოდით ფოკუსირება გავაკეთოთ პრიორიტეტულ არგუმენტზე. მისი ნაგულისხმევი მნიშვნელობა არის 10, ასე რომ, თუ თქვენ არ იყენებთ სხვა ნომერს, ეს იქნება თქვენი ფუნქციის შესრულების პრიორიტეტი. შეამცირეთ ნომერი, ადრე თქვენი ფუნქცია შესრულებულია. ასე რომ, თუკი მსგავსი რამ გააკეთე:

// პირველი გზავნილის დამატება
ფუნქცია my_theme_add_first_message ($ შინაარსი) {
$ შინაარსი. = '

პირველი მესიჯი

'; დააბრუნე $ შინაარსი; } add_filter ('the_content', 'my_theme_add_first_message', 1); // მეორე გზავნილის დამატება ფუნქცია my_theme_add_second_message ($ შინაარსი) { $ შინაარსი. = '

მეორე მესიჯი

'; დააბრუნე $ შინაარსი; } add_filter ('the_content', 'my_theme_add_second_message', 2);

როდესაც თქვენ ეძებთ the_content ფუნქციას single.php- ში ან შაბლონის ნებისმიერი სხვა შინაარსის ნაჩვენები იქნება, რასაც მოჰყვება პირველი შეტყობინება, რასაც მოჰყვება მეორე მესიჯი. არა იმიტომ, რომ ეს არის მათი კოდი ამ კოდში, არამედ შესრულების პრიორიტეტული პარამეტრის გამო. იფიქრეთ კაკლებზე, თითქოს თოვლის ბურთები იყო, რომლებიც გორაკს დაეშვნენ და გზაზე ყველანაირი საგნები აირჩიეს.

როგორ ეხება ეს თემა Customizer Boilerplate- ს?

შეგიძლიათ შეხვიდეთ “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 ();

$ პარამეტრები = მასივი (
// სექციის ID
'my_theme_new_section' => მასივი (

'არსებული_სექცია' => ყალბი,
'args' => მასივი (
'title' => __ ('ახალი განყოფილება', 'my_theme_textdomain'),
'პრიორიტეტი' => 10
),
'სფეროები' => მასივი (
/ *
* რადიო ველი
* /
'my_radio_button' => მასივი (
'setting_args' => მასივი (
'default' => 'ვარიანტი -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 Checkbox. Მარტივი:

ფუნქცია my_child_theme_options_array ($ პარამეტრები) {
// დამხმარე ფუნქციის გამოყენება ნაგულისხმევი საჭირო შესაძლებლობების მისაღებად
$ thsp_cbp_capability = thsp_cbp_capability ();

/ *
* ამჯერად, ჩვენ მხოლოდ რედაქტირებს ველებს my_theme_new_section- ში $ ვარიანტების მასივში
* /
$ პარამეტრები ['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- ში და გავაკეთე ეს ჩემს_ჩილში_მეტყველში_ოპერაციებში? ეს იმიტომ მოხდა, რომ როდესაც პირველად შევეცადე “Thsp_cbp_options_array” Hook მინდოდა გადავწყვიტე Theme Customizer Boilerplate– ის ნიმუშის ვარიანტები. შემდეგ, როდესაც მასში კვლავ ჩავწერე ჩემი ბავშვის თემა, არ მინდოდა მშობლების თემის ვარიანტების მთლიანად წაშლა, უბრალოდ ოდნავ შეცვალეთ ისინი. ამიტომაც მე მესმის მხოლოდ $ პარამეტრები [‘my_theme_new_section]] [‘ ველები], და არა მთლიანი $ პარამეტრები.

რა თქმა უნდა, თქვენ ასევე შეგიძლიათ ჩართოთ “Thsp_cbp_options_array” კიდევ ერთხელ დააჭირეთ თქვენს მშობლის თემას. მოდით ვთქვათ, რომ თქვენ არ გსურთ დაამატოთ plugin- ის ტერიტორიის მახასიათებლები თქვენს თემას და არ მისცეს მოდელები გააკეთონ ის, რაც მათ სურთ. ახლა გსურთ აჩვენოთ Theme Customizer- ის რამდენიმე ვარიანტი მხოლოდ იმ შემთხვევაში, თუ გარკვეული მოდული აქტიურია. კიდევ ერთხელ, მარტივია:

ფუნქცია my_plugin_d կախվածency_options_array ($ პარამეტრები) {
// დამხმარე ფუნქციის გამოყენება ნაგულისხმევი საჭირო შესაძლებლობების მისაღებად
$ thsp_cbp_capability = thsp_cbp_capability ();

/ *
* მხოლოდ დაამატეთ my_plugin_dependency_section, თუ აქტიურია 'test-plugin.php'
* /
if (is_plugin_active ('test-plugin / test-plugin.php')) {

$ პარამეტრები ['my_plugin_d կախվածency_section'] = მასივი (
'არსებული_სექცია' => ყალბი,
'args' => მასივი (
'title' => __ ('მოდელის დამოკიდებულება', 'my_theme_textdomain'),
'პრიორიტეტი' => 10
),
'სფეროები' => მასივი (
/ *
* ტექსტის ველი
* /
// ველის ID
'new_text_field' => მასივი (
'setting_args' => მასივი (
'ნაგულისხმევი' => __ ('', 'my_theme_textdomain'),
'type' => 'ვარიანტი',
'შესაძლებლობები' => $ thsp_cbp_capability,
'transport' => 'განახლება',
),
'control_args' => მასივი (
'label' => __ ('მხოლოდ აჩვენებს თუ არის', 'my_theme_textdomain'),
'typ' => 'text', // ტექსტის ველის კონტროლი
'პრიორიტეტი' => 5
)
),
)
);

}

დაბრუნება $ პარამეტრები;
}
add_filter ('thsp_cbp_options_array', 'my_plugin_d կախվածency_options_array', 3);

გსურთ შეიმუშაოთ ა ძირითადი ფუნქციონალური მოდული გამოყენებული იქნება თქვენი თემით (როგორც უნდა)? შეგიძლიათ შეხვიდეთ “Thsp_cbp_options_array” თქვენი მოდულის ერთ-ერთი ფაილიდანაც, თქვენ იგივე გააკეთეთ თემის ფუნქციიდან.php ფაილიდან.

არ გააკეთოთ ვარიანტი Crazy

როდესაც თქვენ დაამატებთ ვარიანტებს თემას, რომელსაც შეიმუშავებთ, საჭიროა შეინარჩუნოთ WordPress- ის ერთ – ერთი ძირითადი პრინციპი – გადაწყვეტილება არა პარამეტრები – გაითვალისწინე. გაძარცვა ადვილია და დაიწყეთ მომხმარებლის ვარიანტების დამატება თქვენი თემის ყველა მცირე დეტალზე, მაგრამ ეს არავის ართმევს ხელს. ვიმედოვნებ, რომ ეს რამდენიმე ხრიკი, განსაკუთრებით მოდულიდან დამოკიდებული ვარიანტების დამატებით, დაგეხმარებათ თქვენი თემის პარამეტრების მაქსიმალურად შემცირება.

ყოველივე ამის შემდეგ, თუ თქვენს თემას აქვს ისეთი ელემენტები, როგორიცაა ყველა ელემენტის ყველა სასაზღვრო სხივი, ეს არ არის თემა ის არის WYSIWYG რედაქტორი და ალბათ არც თუ ისე კარგი..

თქვენ არ შეიძენთ თეთრ პერანგს, რადგან დამატებითი ძალისხმევით შეგიძლიათ გადააქციოთ იგი მაგიდის ტანსაცმელში, თქვენ ყიდულობთ მას იმიტომ, რომ მოგწონთ მისი „სისუფთავე“. WordPress თემებიც ასე უნდა იყოს, მათ ასევე უნდა წარმოუდგინონ შინაარსი გარკვეული გზით, არ შეეცადონ გააკეთონ ყველაფერი ყველაფერი, რაც წარმოსადგენია. თუ თქვენ ხართ თემის შემქმნელი, თქვენი სამუშაოა დარწმუნდეთ, თუ რა უნდა იყოს მომხმარებლების მოლოდინი.

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