ben şöyle bir ajax api için bir güzergah oluşturmaya çalışıyorum. Wordpress bunu uygulamak için bana bir kanca mı veriyor? İyi yer neresi?WordPress'te bir 'rota' nasıl oluşturabilirim? Ben bu yolu işleyebilir ve <code>do_action</code> ile uygun eylem temsilci wordpress istiyorum</p> <pre><code>/api/<action> </code></pre> <p>: Kendi aklı için
cevap
Kullandığınız güzel yapılandırılmış eklentilerden biri olan wordpress json-api eklentisi gibi görünüyor, aynı zamanda çok kolay genişletilebilir. İyi şanslar.
add_action('init', 'theme_functionality_urls');
function theme_functionality_urls() {
/* Order section by fb likes */
add_rewrite_rule(
'^tus-fotos/mas-votadas/page/(\d)?',
'index.php?post_type=usercontent&orderby=fb_likes&paged=$matches[1]',
'top'
);
add_rewrite_rule(
'^tus-fotos/mas-votadas?',
'index.php?post_type=usercontent&orderby=fb_likes',
'top'
);
}
Bu /tus-fotos/mas-votadas
ve /tus-fotos/mas-votadas/page/{number}
oluşturur, ben pre_get_posts filtresinde işlemek özel bir bir, için orderby sorgu Var değiştirir:
Sen gibi add_rewrite_rule
Something kullanmak zorunda.
query_vars
filtreleri kullanılarak ve yeniden yazma kuralına ekleyerek yeni değişkenler de eklenebilir.
add_filter('query_vars', 'custom_query_vars');
add_action('init', 'theme_functionality_urls');
function custom_query_vars($vars){
$vars[] = 'api_action';
return $vars;
}
function theme_functionality_urls() {
add_rewrite_rule(
'^api/(\w)?',
'index.php?api_action=$matches[1]',
'top'
);
}
Sonra özel isteği yerine:
add_action('parse_request', 'custom_requests');
function custom_requests ($wp) {
$valid_actions = array('action1', 'action2');
if(
!empty($wp->query_vars['api_action']) &&
in_array($wp->query_vars['api_action'], $valid_actions)
) {
// do something here
}
}
Sadece
/wp-admin/options-permalink.php
ziyaret veya bunun önemsiz bir süreç değil, çünkü yalnızca gerektiğinde
flush_rewrite_rules
arayarak kuralları yeniden temizlemek unutmayın.
İşte wordpress tarafından gerçek ve eksiksiz bir çözüm: https://codex.wordpress.org/Rewrite_API/add_rewrite_rule –
Yanıtın ilk sencenteinde aynı URL kullanılıyor mu? – davidmh
Üzgünüm adamım, ama benim için çalışılan şeyi paylaştım, böylece gelecekte başkalarına yardım edebilir :) –
Buna benzer bir soru 'wordpress.stackexchange.com' üzerinde var. http://wordpress.stackexchange.com/questions/26388/how-to-create-custom-url-routes – ckpepper02