WordPress'te harici bir API mi kullanıyorsunuz?


9

WordPress web sitesine sahip bir müşterim var ve yeni işlevler eklemek için genişletmek istiyor. Bu işlevsellikler, daha önce yaptığım bir web sitesinde yer alıyor (bazı filtrelerle bir veritabanı üzerinde bir tür arama motoru) ve yeni geliştirmeler altında.

Ne yapmayı planlıyorum benim web sitesi bir json api oluşturmak (benim veritabanı üzerinde tüm arama fonksiyonu ile), ve bu api tüketen wordpress web sitesi yapmak, o zaman ben sadece arama sonuçlarını göstermek için görünümler oluşturmak zorunda kalacağım.

Sorun şu ki, WordPress'i hiç bilmiyorum (benim için yönetici paneli aracılığıyla makale ekleyebileceğiniz bir şey ...) ve kendi sunucu tarafı kodumuzu nasıl yazabileceğimizi bilmiyorum. Google'da arama yaptım ve "eklenti" olarak adlandırılan bir şey buldum, ancak bunun mümkün olup olmadığını merak ediyorum ve kodun başka bir üçüncü tarafından kullanılmasına gerek olmadığı için bunu yapmanın en basit yolu Parti. PHP dosyalarımı eklemek için bir WordPress yüklemesini hacklemek mümkünse, ihtiyacım olanı kodlayın (aynı WordPress css ile görünümlerimi) daha basit olurdu, ancak mümkün olup olmadığını bilmiyorum?


Tam olarak ne yapmaya çalışıyorsunuz, bir json beslemesini wordpress'e okuyun, bir veritabanına veri ekleyin, XML-RPC aracılığıyla yayınlayın, daha net ve açık olun.
Wyck

json beslemesini okuyun. örnek için, wordpress sitesi bir arama formu içermelidir, gönderirken, bir api'ye bir get çağrısı gerçekleştirir, api json'da nesneleri döndürür ve bu sonuçları wordpress sitesinin bir sayfasında vermeliyim
tahir

1
@tahir Bu şeyi yapmaya çalışıyorum. Hedefinize nasıl ulaştığınızı muhtemelen paylaşabilir misiniz?
SAHM

Yanıtlar:


9

WordPress geliştirmede size yardımcı olabilecek veya sizi şaşırtabilecek kısa bir astar:

Akılda tutulması gereken en önemli şey: hepsi sadece PHP. Ve ayrıca: WordPress'in temel dosyalarını düzenlemeyin, çünkü daha yeni bir sürüme güncellediğinizde sorun yaşayacaksınız. Düzenlemeniz gereken tek kod, eklentilerin ve temaların kodudur.

Yalnızca mevcut bir sayfaya bir şeyler eklemeniz gerekiyorsa, yalnızca doğru tema dosyasını düzenlemek işe yarayabilir. Ancak, gelişmiş bir şey yapmanız gerekiyorsa (ve belirli bir URL'de olduğu gibi ek bir "görünüm" eklemek WordPress'te daha gelişmişse, kodu WordPress önyükleme işleminin daha önce yüklenecek bir yere eklemeniz gerekir. .

Bunun nedeni, WordPress'in URL'yi temel alarak sizin için her zaman bir gönderi sorgusu yapmasıdır. Gittiğinizde /category/banana/, kategori yayınlarını sorgular bananave yalnızca döngü yapmanız ve görüntülemeniz gereken doğru şablon dosyasını yükler. Ancak, giderseniz /custom-view/, WordPress muhtemelen herhangi bir gönderi bulamaz ve 404 şablonunu yükler - size kurtarmanın kolay bir yolu yoktur!

Bazı insanlar bunu "saplama sayfaları" oluşturarak çözer: WordPress'te içeriğin önemli olmadığı bir Sayfa oluştururlar, sadece şablon: orada yapmak istedikleri her şeyi yaparlar. Bu acayip, ama işe yarıyor. Temiz yol , WordPress'in geçerli bir URL olduğunu ancak orada başka bir şey olması gerektiğini bildiren ekstra yeniden yazma kuralları tanımlamak olacaktır /custom-view/.

Bunu yapmak isterseniz, gerek içine kanca çekirdek WordPress sisteminde. Burada önemli parçasıdır içine kanca değil, değiştirmek . WordPress'in eylemleri ve filtreleri vardır . İşlem yalnızca bir duyurudur ( "Hey, şu anda <head>etiketi yazıyoruz . Siz de bir şey eklemek ister misiniz?" ). Filtre, bir değişkeni değiştirmenize olanak tanır ( "Bu yazı başlığıdır. Değiştirmek isterseniz yeni bir değer döndürün" ). Tabii ki, şimdi hile hangi eylemleri ve filtreleri kullanmanız gerektiğini bilmek. Bu, seçim şekline bağlıdır (saplama sayfaları veya yeni yeniden yazma kuralları), bu yüzden burada ayrıntılara girmeyeceğim.

Kullanmak istediğiniz eylemleri ve filtreleri bir eklenti dosyasında veya temanızın function.php dosyasında tanımlarsınız . Onlar için özeldir onlar WordPress önyükleme sırasında yüklenen ana sorgu yürütülür ve benzeri bu yüzden önce. Bir eklenti dosyası, wp-content/plugins/dizine yerleştirilen özel bir üstbilgiye sahip bir PHP dosyasıdır, böylece WordPress adını okuyabilir ve etkinleştirebileceğiniz ve devre dışı bırakabileceğiniz yönetim alanında görüntüleyebilir (böylece eklentiyi dizinde ancak geçici olarak bırakabilirsiniz) devre dışı bırak).


2

temeller

Eklentiler ve temalar için temelleri bulmak zorundasınız. Kısacası: Bunlar wordpress çekirdek işlevselliğine eklemelerdir. Normalde "Eklentiler" işlevsellik ve "Temalar" daha çok "görünüm" ile ilgilidir. "Eklenti API'sı" hakkında da biraz okumak isteyebilirsiniz .

JSON

"Güvenli" bir API sağlamak için çekirdeğe yerleştirilmiş olan json2 komut dosyasını kullanmak isteyebilirsiniz .

JSON örneği

Gerisi böyle bir şey olurdu:

$response = json_encode( array( 
     'data' => $your_output 
) );
header( "Content-Type: application/json" );
echo $response;

XML Rpc

Codex da "XML Rpc" hakkında bir şey var .

Http API'sı

Başka bir olasılık http istekleri olabilir . Bağlantının altındaki referansları okuduğunuzdan emin olun.


Webhooks

Daha fazla sarf edilebilir bir API vermekle ilgili olduğundan bu ek bir özelliktir. Burada açıklama . Ayrıca , bu işi sizin için yapan HookPress adında bir eklenti de var. Yazarın bazı slaytları da.


1

PHP biliyor musunuz? Yoksa bu da bir engel mi?

WordPress'teki eklentiler, PHP kodunun WordPress çekirdeği tarafından tanınması ve işlenmesi için nasıl paketleneceğidir. İşlevden ziyade biçimdir.

Gerçek işlevsellik gelince, hemen hemen rastgele PHP çalıştırabilirsiniz, ancak uyumluluk ve güvenilirlik için WP API'lerini kullanmak iyi bir uygulamadır.

Kodunuzu WP bağlamında düşünün ( includeteknik olarak olacaktır). Oradan ne kadarının WordPress'e özgü olarak yeniden yazılacağını belirleyecek olan ihtiyaçlarınızın ve kaynaklarınızın kapsamıdır.


0

Evet mümkün.

çoğu eklenti kanca denilen şeyle oluşturulur:

Örneğin:

add_action("hook", "function")

Bu çerçevenin nasıl çalıştığını öğrendikten sonra kendinize bir eklenti oluşturmak oldukça kolaydır ... iyi ... Bilgi için en kapsamlı yer olan (en düzenli değil, php gibi) kendinizle çiftleştirmenizi tavsiye ederim. net) wordpress kodeksidir .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.