HTTP Ekstra İsteği Olmadan WordPress Rest API’sını Kullanma

WordPress Rest API, JSON formatında WordPress içeriği almanın çok şaşırtıcı bir yoludur, böylece JavaScript tabanlı bir arayüzde kullanabilirsiniz.Genellikle bu, sayfanızın dahil edilen herhangi bir içerik olmadan yüklendiği ve daha sonra JSON olarak içerik için sunucuya Ajax isteği yapacağınız ve sayfada oluşturduğunuz anlamına gelir.İlk sayfa talepleri için ek bir istektir.Sunucuda olduğunuz sürece, ilk isteğe yanıt dahil JSON olarak neden içerik almıyorsunuz?Bu yazıda, ek HTTP istekleri olmadan doğru biçimlendirilmiş bir yangın yanıtı almak için API REST kontrolleri kullanımını tartışacağım.Örneğin, bu yöntemi kullanarak yayınlamanın ilk sayfasını alan ve daha sonra içerik için Ajax isteğini kullanarak yayının ikinci sayfasına geçebilecek bir arşiv yazısı oluşturacağız.
Bunu göstermeye başlayarak, bu yöntemi kullanan basit bir yirmi on yedi çocuk teması yapmanıza rehberlik edeceğim. Bu, varsayılan gönderi türünü yayınlamak için arşivi ele alacaktır. Temayı GitHub’a gönderdim, tek bir gönderi veya başka bir yazı türü için destek eklemek istiyorsanız, lütfen çatallayın ve yaptığınızı paylaşın. Temel temam olarak yirmi on yedi kullanıyorum ve şablon sistemim olarak Handebars.js. İsterseniz seçim aracınızı kullanabilirsiniz. Başlamak için bir çocuk teması yapın. Function.php’de, WP_LOCALICAL_SCRIPT () ‘i devam edebileceğimiz API’nın yanıt geri kalanı olarak biçimlendirilmiş bir yayın almak için bir işleve ihtiyacımız var. Bunu yapmak için, gerçek WordPress HTTP isteğine yanıt verirken WordPress’in kullanacağı ile aynı sınıfı oluşturabiliriz: WP_REST_REQUEST – İstek argümanımızı belirleyin
WP_REST_POST_CONTLOLLER – Gönderileri Alın
Wp_rest_response – yanıt biçimi
Bu işlev manuel olarak bir isteği yapar, bu nedenle ek HTTP isteklerine ihtiyacımız yoktur ve kuyruğu gerçekleştirmek için Post denetleyicisi aracılığıyla devam eder. Daha sonra wp_rest_ensure_response () işlevi, wp_localate_script () 1
));
$ öğeler = $ denetleyici-> get_items ($ istek);
Dönüş dizisi (
‘post’ => rest_ensure_response ($ öğeler)-> get_data ());
} Şimdi JavaScript dosyalarını yüklemek için hazırlayabilir ve bu verilere devam edebiliriz:
<? Php
Add_action ('wp_enqueue_scripts', function () {
wp_enqueue_style ('yirmi -yurt içinde güç', get_template_directory_uri (). '/style.css');
wp_register_script ('Handbararsjs', '//cdnjs.cloudflare.com/ajax/libs/handbars.js/4.0.6/handbars.min.js');
wp_enqueue_script ('tema', get_stylesheet_directory_uri (). '/theme.js', dizi ('jQuery', 'el çubukları')));
$ post_data = example_rest_theme_get_posts (get_query_var ('sayfa', 1));
WP_LOCALICAL_SCRIPT ('tema', 'ex_theme', $ Post_data);
}); Birisi arşivin 2. sayfasına girerse, "Paged" var sorgusu ile sayfa argümanını bu şekilde ayarladığımızı unutmayın.
Son bir şey, devam etmeden önce JavaScript zamanı. Çocuk temasında bir home.php dosyası oluşturun ve orada çocuk temasından index.php içeriğini kopyalayın. Ardından #Main – IE Loop'taki her şeyi silin. Dosyanın altında, içeriğinizi görüntülemek için bir şablon eklemek veya görüntülemek için wp_footer kullanırsınız. Handebars.js kullandığım için, bu benim şablon ekranım:

<a href = "erter

{{{content.rended}}}

JavaScript ile yayınlama gönderme Son bölümde WordPress’e çocuk tema dizininden tema.js adlı bir javascript dosyası yüklemesini söyleriz. Lütfen ve yap. Orada, şablonumuzu kullanarak WP_LOCALICAL_SCRIPT ile DOM’a geçirdiğimiz yayınları tekrarlamak ve #Main kapsayıcısına yerleştirmek istiyoruz.
jQuery (işlev ($) {
if (‘object’ == typeof ex_theme && ‘tanımsız’! = ex_theme.posts) {
Var post = ex_theme.posts,
Şablon = gidon
$ main = $ (‘#utama’);
$ .EACH (Post, Fonksiyon (I, Post) {
$ Main. Uygulama (şablon (posta));
});
}
}); Şimdi site ana sayfasını açın ve yayın JavaScript aracılığıyla yüklenecektir. Bu havalı, ama sayfalandırma yok. Pagination’ımızı akıllı hale getirmek için pajinasyonlar ekleyerek, önceki bağlantıyı ikinci veya daha büyük sayfada görüntülemek istiyoruz. Ayrıca, son sayfada sayfalandırma bağlantısını görüntülemek istemiyoruz. Hem PHP hem de JavaScript, toplam sayfa sayısını almak için X-WP-TotalPages üstbilgisini kullanabilir.
Öncelikle, geçerli sayfayı ve sayfa sayısını geri yüklemek için bir gönderi almak için PHP işlevini güncelleyelim:
Bu bize sayfalandırma için ihtiyacımız olan bilgileri verecektir. Ayrıca sayfalandırma için yeni bir şablona ihtiyacımız var:

admin

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir