როგორ შევქმნათ ვიჯეტის მოდული WordPress- ისთვის

WordPress არის საოცარი შინაარსის მართვის სისტემა, რომელსაც აქვს მრავალი შესანიშნავი ფუნქცია, როგორიცაა ვიჯეტები. ამ გაკვეთილზე, მე განვმარტავ, თუ როგორ უნდა შექმნათ საკუთარი ვიჯეტები მცირე დანამატის შიგნით. ეს პოსტი მოიცავს რამდენიმე დამატებით წერტილს, რომლებიც უნდა გაითვალისწინოთ თავად ვიჯეტის შექმნის წინ. Აქ ჩვენ მივდივართ!


ნაბიჯი 1: შექმენით თქვენი ვიჯეტის მოდული

ახლახან შევქმენი მოდული სახელწოდებით “Freelancer Widgets Bundle” და რამდენიმე ადამიანი მკითხა, როგორ შევქმნა ასეთი მოდული, ამიტომ გადავწყვიტე ამ პოსტის დაწერა. პირველი ნაბიჯი არის მოდულის შექმნა. როგორც ხედავთ, ეს არ არის ყველაზე რთული ნაწილი. მოდული არის დამატებითი კოდი, რომელიც დაემატა WordPress- ს მას შემდეგ, რაც გააქტიურებთ. WordPress ქმნის საქაღალდეს საქაღალდეში, რომ მოიპოვოს ყველა შესაძლო დანამატი და ჩამოთვალოს ისინი უკანა ოფისში. თქვენი მოდულის შესაქმნელად დაგჭირდებათ რედაქტორი, როგორიცაა Coda (Mac) ან Dreamweaver (PC & Mac). გირჩევთ შექმნათ თქვენი მოდული WordPress– ის ადგილობრივ ინსტალაციაში, შეცდომის შემთხვევაში შეცდომის შემთხვევაში, ის პირდაპირ ცოცხალ სერვერზე შექმნით. გთხოვთ, დაელოდოთ ჩვენს მოდელის შესამოწმებლად სანამ მასპინძელ მასზე აყენებთ.

გახსენით ახლა საქაღალდე wp-content / plugins. ეს არის სადაც თქვენ გსურთ დაამატოთ თქვენი მოდული. შექმენით ახალი დირექტორია და უწოდეთ “ვიჯეტის დანამატი” (სინამდვილეში, ეს სახელი შეიძლება იყოს თქვენთვის სასურველი). მაშინაც კი, თუ ჩვენს მოდულს მხოლოდ ერთი ფაილი ექნება, ყოველთვის უკეთესია გამოიყენოს საქაღალდე თითოეული დანამატისთვის. თქვენს დირექტორიაში შექმენით ახალი ფაილი სახელწოდებით “widget-plugin.php” (ეს სახელი შეიძლება შეიცვალოს) და გახსენით იგი. ჩვენ ახლა ვაპირებთ დავამატოთ ჩვენი პირველი სტრიქონის კოდი. WordPress- ის მოდულის განმარტება განსაზღვრავს რამდენიმე წესს, რომელთა წაკითხვაც შეგიძლიათ აქ კოდექსზე. აქ მოცემულია, თუ როგორ განსაზღვრავს WordPress მოდული:

ამიტომ, ჩვენ უნდა შეცვალოთ ეს კოდი, რომ ის ჩვენს საჭიროებებს მოერგოს:

შეინახეთ თქვენი ფაილი. მხოლოდ ვიჯინ-plugin.php ფაილში კოდი დავამატეთ, ჩვენ შევქმენით მოდული! ახლა მოდული არაფერს აკეთებს, მაგრამ WordPress ამას აღიარებს. დარწმუნდით, რომ ეს ასეა, წადი თქვენი ადმინისტრაცია და გადადით "მოდულების" მენიუში. თუ თქვენი მოდული ჩნდება დანამატების სიაში, თქვენ კარგი ხართ, წინააღმდეგ შემთხვევაში დარწმუნდით, რომ დაიცავით ჩემი მითითებები და სცადეთ ხელახლა. ახლა შეგიძლიათ დაამატოთ მოდული.

ნაბიჯი 2: შექმნა ვიჯეტი

ახლა ჩვენ ვაჯეტის შექმნას ვაპირებთ. ეს ვიჯეტი იქნება PHP კლასი, რომელიც გაგრძელდება ძირითადი WordPress კლასს WP_ ვიჯეტი. ძირითადად, ჩვენი ვიჯეტი განისაზღვრება ამ გზით:

// ვიჯეტის კლასი
კლასის My_Custom_Widget ვრცელდება WP_Widget

// მთავარი კონსტრუქტორი
საჯარო ფუნქცია __კონსტრუქცია ()
/ * ... * /
}

// ვიჯეტის ფორმა (ბექონისთვის)
საჯარო ფუნქციის ფორმა ($ მაგალითად) {
/ * ... * /
}

// ვიჯეტის პარამეტრების განახლება
საჯარო ფუნქციების განახლება ($ new_instance, $ old_instance) {
/ * ... * /
}

// ვიჯეტის ჩვენება
საზოგადოებრივი ფუნქციის ვიჯეტი ($ არგუმენტები, $ მაგალითად) {
/ * ... * /
}

}

// დაარეგისტრირეთ ვიჯეტი
ფუნქცია my_register_custom_widget ()
Register_widget ('My_Custom_Widget');
}
add_action ('widgets_init', 'my_register_custom_widget');

ეს კოდი WordPress- ს გადასცემს ყველა იმ სისტემას, რაც სისტემას სჭირდება, რომ შეძლოს ვიჯეტის გამოყენება:

  1. კონსტრუქტორი, ვიჯეტის შექმნა
  2.  ფორმა () ფუნქცია ვიჯეტის ფორმის შესაქმნელად ადმინისტრაციაში
  3. განახლება () ფუნქცია, ვიჯეტის მონაცემების შესანახად გამოცემის დროს
  4. Და ვიჯეტის () ფუნქცია ვიჯეტის შინაარსის გამოსახვა წინა ბოლოს

1 - კონსტრუქტორი

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

// მთავარი კონსტრუქტორი
საჯარო ფუნქცია __კონსტრუქცია ()
მშობელი :: __ კონსტრუქცია (
'my_custom_widget',
__ ("ჩემი პირადი ვიჯეტი", "text_domain"),
მასივი (
'customize_selective_refresh' => მართალია,
)
);
}

გთხოვთ, არ გამოიყენოთ ვიჯეტის სახელის გარშემო __ () გამოყენება, ამ ფუნქციას იყენებთ WordPress- ს თარგმნისთვის. მე ნამდვილად გირჩევთ ყოველთვის გამოიყენოთ ეს ფუნქციები, თქვენი თემა სრულად თარგმნად იქცეს. და "personalize_selective_refresh" პარამეტრის გამოყენება საშუალებას იძლევა, რომ ვიჯეტის განახლება მოხდეს გარეგნობა> შეცვლა ვიჯეტის შეცვლისას, ასე რომ, მთლიანი გვერდის განახლების ნაცვლად, მხოლოდ ვიჯეტის განახლება ხდება.

2 - ფორმა () ფუნქცია

ეს ფუნქცია არის ის, ვინც ქმნის ვიჯეტის ფორმის პარამეტრებს WordPress ადმინისტრაციულ ზონაში (ან გარეგნობის> ვიჯეტების ან გარეგნობის> პერსონალის> ვიჯეტის ქვეშ). ეს გახლავთ, როდესაც თქვენს მონაცემებს ვებსაიტზე ნაჩვენებთ. ასე რომ, მე განვმარტავ, თუ როგორ შეგიძლიათ დაამატოთ ტექსტური ველები, ტექსტური ზონები, აირჩიოთ ყუთები და ყუთები, თქვენი ვიჯეტის ფორმის პარამეტრებში.

// ვიჯეტის ფორმა (ბექონისთვის)
საჯარო ფუნქციის ფორმა ($ მაგალითად) {

// ვიჯეტის პარამეტრების დაყენება
$ ნაგულისხმევი = მასივი (
'title' => '',
'text' => '',
'textarea' => '',
'checkbox' => '',
'აირჩიეთ' => '',
);

// მიმდინარე პარამეტრების გაანალიზება ნაგულისხმევად
ამონაწერი (wp_parse_args ((მასივი) $ მაგალითად, $ ნაგულისხმევი)); ?>


"name ="get_field_name ('ყუთი "); ?> "type =" ყუთი "მნიშვნელობა =" 1 " />

ამ კოდს უბრალოდ დაამატებთ ვიჯეტის 5 ველს (სათაური, ტექსტი, ტექსტურა, არჩევა და ყუთი). ასე რომ, პირველ რიგში, თქვენ განსაზღვრავთ პარამეტრების პარამეტრს თქვენი ვიჯეტისთვის, შემდეგ შემდეგი ფუნქცია აანაზღაურებს თქვენი ვიჯეტისთვის განსაზღვრულ / შენახულ მიმდინარე პარამეტრებს ნაგულისხმევად (ასე რომ, ყველა პარამეტრი, რომელიც არ არსებობს, დაბრუნდება ნაგულისხმევი, მაგალითად, როდესაც პირველად დაამატეთ ვიჯეტი თქვენი გვერდითი მხარე). და ბოლოს არის html თითოეული ველი. ყურადღება მიაქციეთ esc_attr () ფორმის ველების გამოყენებას, ეს კეთდება უსაფრთხოების მიზეზების გამო. როდესაც თქვენს საიტზე განსაზღვრული ცვლადი ეხმიანება, დარწმუნდით, რომ ეს არის პირველი სანიტარული.

3 - განახლების () ფუნქცია

განახლების () ფუნქცია მართლაც მარტივია. როგორც WordPress- ის ძირითადი დეველოპერებმა დაამატეს მართლაც მძლავრი ვიჯეტის API, ჩვენ მხოლოდ უნდა დაამატოთ ეს კოდი თითოეული ველი:

// ვიჯეტის პარამეტრების განახლება
საჯარო ფუნქციების განახლება ($ new_instance, $ old_instance) {
$ მაგალითად = $ old_instance;
$ მაგალითად ['სათაური'] = გამცემი ($ new_instance ['სათაური'])? wp_strip_all_tags ($ new_instance ['სათაური']): '';
$ მაგალითად ['text'] = გამოიცემა ($ new_instance ['ტექსტი'])? wp_strip_all_tags ($ new_instance ['text']): '';
$ მაგალითად ['textarea'] = გამოიცემა ($ new_instance ['textarea'])? wp_kses_post ($ new_instance ['textarea']): '';
$ მაგალითად ['checkbox'] = გამოიცემა ($ new_instance ['ყუთი'])? 1: ყალბი;
$ მაგალითად ['აირჩიეთ'] = გაცემა ($ new_instance ['აირჩიეთ'])? wp_strip_all_tags ($ new_instance ['აირჩიეთ']): '';
დაბრუნება $ მაგალითად;
}

როგორც ხედავთ, რაც უნდა გავაკეთოთ არის თითოეული პარამეტრის შემოწმება და თუ ის ცარიელი არ არის, შეინახეთ იგი მონაცემთა ბაზაში. ყურადღება მიაქციეთ wp_strip_all_tags () და wp_kses_post () ფუნქციების გამოყენებას, ისინი გამოიყენება მონაცემთა გასანაწილებლად, სანამ მონაცემთა ბაზაში დაემატება. როდესაც ნებისმიერ მომხმარებელს წარუდგენთ შინაარსს მონაცემთა ბაზაში, დარწმუნდით, რომ მას არ აქვს რაიმე მავნე კოდი. პირველი ფუნქცია wp_strip_all_tags აშორებს ყველაფერს, ძირითადი ტექსტის გარდა, ასე რომ თქვენ შეგიძლიათ გამოიყენოთ იგი ნებისმიერ ველში, სადაც ბოლო მნიშვნელობა არის სტრიქონი, ხოლო მეორე ფუნქცია wp_kses_post () არის იგივე ფუნქცია, რომელიც გამოიყენება შინაარსის შინაარსში და ის შლის ყველა ტეგს ძირითადი html, როგორიცაა ბმულები , spans, divs, სურათები და ა.შ..

4 - ვიჯეტის () ფუნქცია

ვიჯეტის () ფუნქცია არის ის, რაც გამოაქვს შინაარსს ვებსაიტზე. ეს ნახავთ თქვენს სტუმრებს. ეს ფუნქცია შეიძლება მორგებულია CSS კლასების ჩასატარებლად და სპეციფიკური ტეგები, რომ იდეალურად შეესაბამებოდეს თქვენს თემას. აქ არის კოდი (გთხოვთ, არა, რომ ამ კოდის ადვილად შეცვლა შეგიძლიათ თქვენს საჭიროებებს):

// ვიჯეტის ჩვენება
საზოგადოებრივი ფუნქციის ვიჯეტი ($ არგუმენტები, $ მაგალითად) {

ამონაწერი ($ args);

// შეამოწმეთ ვიჯეტის პარამეტრები
$ title = გამოიცემა ($ მაგალითად ['სათაური'])? apply_filters ('widget_title', $ მაგალითად ['სათაური']): '';
$ text = გამოიცემა ($ მაგალითად ['ტექსტი'])? $ მაგალითად ['text']: '';
$ textarea = გამოიცემა ($ მაგალითად ['textarea'])? $ მაგალითად ['textarea']: '';
$ select = გამოიცემა ($ მაგალითად ['აირჩიეთ'])? $ მაგალითად ['აირჩიეთ']: '';
$ ყუთი =! ცარიელი ($ მაგალითად ['ყუთი'])? $ მაგალითად ['ყუთი']: ყალბი;

// WordPress core_Widget Hook (ყოველთვის ჩათვლით)
echo $ Before_widget;

// ვიჯეტის ჩვენება
ექო '
'; // თუ განსაზღვრულია ვიჯეტის ელემენტის სათაური თუ ($ სათაური) { echo $ ადრე_title. $ სათაური. $ after_title; } // ტექსტის ველი ჩვენება თუ ($ ტექსტი) { ექო '

”. $ ტექსტი. '

'; } // ტექსტურის ტექსტის ჩვენება თუ ($ textarea) ექო '

”. $ textarea. '

'; } // მონიშნეთ ველი თუ ($ არჩევა) { ექო '

”. $ შერჩევა. '

'; } // აჩვენე რამე, თუ ყუთი არის ნამდვილი თუ ($ ყუთი) { ექო '

რაღაც გასაოცარია

'; } ექო '
'; // WordPress- ის ძირითადი ძირითადი საშუალებები (ყოველთვის შედის) echo $ after_widget; }

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

სრული ვიჯეტის მოდულების კოდი

თუ სწორად დაიცავით, თქვენი მოდული ახლა სრულად ფუნქციონირებს და შეგიძლიათ შეცვალოთ იგი თქვენს საჭიროებებს. თუ თქვენ არ მიგიღიათ სახელმძღვანელო ან გსურთ შეამოწმოთ კოდი, შეგიძლიათ ეწვიოთ Github გვერდს, რომ ნახოთ სრული კოდი.

იხილეთ სრული კოდი Github– ზე

დასკვნა

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

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