WordPress გადაწერა API

WordPress აქვს მართლაც სასარგებლო API სახელწოდებით ”the გადაწერეთ API”. ვფიქრობ, რომ უკვე გვაქვს “url გადაწერა”, ეს არის პროცესი, რაც მისამართებს უფრო კითხულობს. მაგალითად, მაგალითად დაწერილი მისამართი http://mysite.com/?page=12&categor=12&author=47 არ არის ისეთი კარგი. ძნელია გახსოვდეთ ეს, და საძიებო სისტემებს არ მოსწონთ ეს. სწორედ ამიტომ, თითქმის ყველა CMS– ს აქვს ფუნქციური ფუნქცია, რომელიც “გადაწერს” urls- ს, რათა მათ ასე გამოიყურებოდეს: http://mysite.com/categ//business/finance.


გადაწერეთ API და WP_Rewrite კლასი

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

ამ პოსტში, ჩვენ ვაპირებთ შევქმნათ მარტივი ფუნქციები, რათა შეიქმნას მარტივი პერსონალური გადაწერა წესები. ვთქვათ, რომ გვინდა მივიღოთ რეფერენტის მნიშვნელობა, ეკვივალენტურია $ _GET [‘რეფერენტი]].

თუ გადავხედავთ Codex- ს, ჩვენ გადავწეროთ API გვერდზე, რომ ამ API– ს აქვს 6 ჩაშენებული ფუნქცია. გადაწერის ყველაზე გავრცელებული გამოყენება ამ ფუნქციების გამოყენებაა, ამის შესახებ უამრავი გაკვეთილია, სწორედ ამიტომ ვაპირებ ფილტრების გამოყენებას ფუნქციების ნაცვლად. იმის გამო, რომ დიახ, გადაწერა API ასევე შეგიძლიათ გამოიყენოთ ფილტრებით! ეს ფილტრები ჩამოთვლილია WP_Rewrite კლასი კოდექსის გვერდი.

ახალი შეკითხვის დამატება Var

დასაწყისისთვის, ჩვენ უნდა შევქმნათ ფუნქცია, რომელიც WordPress- ს ეტყვის, რომ დაწერა ახალი წესი, ეს არის სამუშაო add_rewrite_rule () და add_rewrite_tag ()  ფუნქციები, მაგრამ ამის გაკეთება შეგიძლიათ query_vars და გადაწერეთ_rules_array ფილტრები. ამისათვის, ჩვენ უნდა შევქმნათ ორი ფუნქცია და ორი ფილტრი. პირველი ფუნქცია აპირებს უბრალოდ დაამატოთ ახალი ცვლადი query_vars ფილტრში, ხოლო მეორე აპირებს დაარეგისტრიროს ეს ახალი ცვლადი გლობალური გადაწერა წესებში:

/ *
|--------------------------------------------------------------------------
| დაიწყეთ გადაწერა. ნიმუში: http://mysite.com/referrer/remi
|--------------------------------------------------------------------------
* /

// დაარეგისტრირეთ ახალი var
ფუნქცია rc_add_query_vars ($ vars) {
$ vars [] = "რეფერენტი"; // var- ის სახელი, როგორც URL- ში ჩანს
დაბრუნება $ vars;
}

// ჩვენი ფუნქცია ჩასვით query_vars- ში
add_filter ('query_vars', 'rc_add_query_vars');

// დაამატეთ ახალი გადაწერის წესი არსებობებს
ფუნქცია rc_add_rewrite_rules ($ წესები) {
$ new_rules = მასივი ('referrer / ([^ /] +) /? $' => 'index.php? referrer = $ მატჩები [1]');
$ წესები = $ new_rules + $ წესები;
$ წესების დაბრუნება;
}

// დაუკრა ფუნქცია rewrite_rules_array– ში
add_filter ('rewrite_rules_array', 'rc_add_rewrite_rules');

მას შემდეგ, რაც დაამატებთ ამ კოდს თქვენი მოდულების ფაილში ან თქვენი თემის ფუნქციების.php ფაილში, მოხვდით პარამეტრებში> პერმანლინკებში და შეინახეთ პერმანოკინების სტრუქტურა. ეს მოქმედებაა საჭირო. ახლა თქვენ შეძლებთ თქვენს საიტზე წვდომას ამ ტიპის ან მისამართით: http://mysite.com/referrer/your-name. თუ გსურთ კონკრეტულ გვერდზე გადამისამართება, შეცვალეთ index.php? Referrer = $ მატჩები [1] index.php? Pagename = my-page & referrer = $ დამთხვევები [1], სადაც „ჩემი გვერდი“ არის გვერდი. გადაკეთდა slug.

ცვლადი მნიშვნელობის აღებას

ახლა, როდესაც თქვენი გადაწერის წესი არის მითითებული, თქვენ შეიძლება გსურთ ცვლადი მნიშვნელობის წვდომა. მაგრამ თუ უბრალო $ _GET [‘რეფერენტი’] აკეთებთ, არ მიიღებთ რაიმე მნიშვნელობას. URL– ის ვარიანტების დასადგენად, თქვენ უნდა დაუკავშიროთ ფუნქცია “შაბლონურ ფილტრზე”. „დაწყების“ ფილტრისკენ გადახტომა ნაადრევია. შემდეგ შეგიძლიათ მიიღოთ საჭირო ცვლადები $ wp_query ობიექტის საშუალებით. აქ არის სწრაფი ნიმუში, თუ როგორ უნდა გავაკეთოთ ეს:

// წაიკითხეთ URL var
ფუნქცია rc_get_my_vars ()
გლობალური $ wp_query;

if (გამოიცემა ($ wp_query-> query_vars ['რეფერენტი'])) {
$ referrer = get_query_var ('რეფერენტი');
}
}

// დაუკრა ფუნქცია შაბლონად
add_action ('template_redirect', 'rc_get_my_vars');

შემდეგ შეგიძლიათ მოეხდინათ $ რეფერენტის მნიშვნელობა, ან გამოიყენოთ იგი ჩვეულებრივ GET ცვლასთან ერთად.

თქვენ, რა თქმა უნდა, შეგიძლიათ შეცვალოთ გამოიყენოთ ერთზე მეტი ცვლადი:

// in rc_add_query_vars ()
$ vars [] = "რეფერენტი";
$ vars [] = "კამპანია";

// in rc_add_rewrite_rules ()
$ new_rules = მასივი ('refererer / ([^ /] +) / ([^ /] +) /? $' => 'index.php? pagename = ჩემი გვერდი და რეფერენტი = $ მატჩი [1] & კამპანია = $ მატჩი [ 2] ');

არ უნდა დაგვავიწყდეს, რომ გჭირდებათ PHP mod_rewrite მოდული, რომ გამოიყენოთ url გადაწერა.

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