Mengkonsumsi API eksternal di WordPress?

9

Saya memiliki klien yang memiliki situs web WordPress, dan dia ingin memperluasnya untuk menambah fungsionalitas baru. Fungsionalitas ini termasuk dalam situs web yang telah saya lakukan (semacam mesin pencari di atas database, dengan beberapa filter), dan yang berada di bawah perangkat tambahan baru.

Yang saya rencanakan adalah membuat json api dari situs web saya (dengan semua fungsi pencarian di atas basis data saya), dan membuat situs web wordpress mengonsumsi api ini, maka saya hanya perlu membuat tampilan untuk menampilkan hasil pencarian.

Masalahnya adalah saya sama sekali tidak tahu WordPress (bagi saya itu adalah sesuatu di mana Anda dapat menambahkan artikel melalui panel admin ...) dan saya tidak tahu bagaimana kita bisa menulis kode sisi server kita sendiri di dalamnya. Saya telah mencari di Google dan menemukan sesuatu yang disebut "plugin", tetapi saya bertanya-tanya apakah mungkin untuk melakukannya, dan apakah itu cara paling sederhana untuk dilakukan karena saya tidak perlu memiliki kode yang digunakan oleh ketiga lainnya pesta. Jika mungkin untuk meretas instalasi WordPress untuk menambahkan file PHP saya, kode apa yang saya butuhkan (pandangan saya dengan css WordPress yang sama) itu akan lebih sederhana, tetapi saya tidak tahu apakah itu mungkin?

tahir
sumber
Apa sebenarnya yang Anda coba lakukan, baca json feed ke wordpress, masukkan data ke dalam database, publikasikan melalui XML-RPC, coba dan lebih jelas.
Wyck
baca json feed. sebagai contoh, situs wordpress harus berisi formulir pencarian, ketika mengirimkan, itu akan melakukan panggilan ke api, api akan mengembalikan objek di json, dan saya harus menampilkan hasil ini di halaman situs wordpress
tahir
1
@ Tahir saya mencoba melakukan hal ini. Mungkinkah Anda bisa membagikan bagaimana Anda mencapai tujuan Anda?
SAHM

Jawaban:

9

Panduan singkat tentang pengembangan WordPress yang dapat membantu atau membingungkan Anda:

Hal utama yang perlu diingat: itu semua hanyalah PHP. Dan juga: jangan mengedit file inti WordPress, karena Anda akan mendapat masalah ketika Anda memperbarui ke versi yang lebih baru nanti. Satu-satunya kode yang harus Anda edit adalah plugin dan tema.

Jika Anda hanya perlu menambahkan sesuatu ke halaman yang sudah ada, mungkin ada baiknya mengedit file tema yang tepat. Namun, jika Anda perlu melakukan sesuatu yang canggih (dan menambahkan "tampilan" tambahan, seperti pada URL tertentu, lebih maju di WordPress), Anda perlu menambahkan kode di tempat yang akan dimuat sebelumnya dalam proses boot WordPress. .

Alasannya adalah karena WordPress selalu melakukan kueri pos untuk Anda, berdasarkan URL. Jika Anda pergi ke /category/banana/, itu akan permintaan untuk posting kategori bananadan memuat file template yang benar di mana Anda hanya perlu mengulang dan menampilkannya. Namun, jika Anda pergi ke /custom-view/, WordPress mungkin tidak akan menemukan posting dan memuat template 404 - memberi Anda tidak ada cara mudah untuk pulih!

Beberapa orang menyelesaikan ini dengan membuat "stub pages": mereka membuat Halaman di WordPress di mana kontennya tidak penting, hanya templatnya: di sana mereka melakukan hal-hal mewah apa pun yang ingin mereka lakukan. Ini adalah peretasan, tetapi berhasil. Cara bersihnya adalah dengan mendefinisikan aturan penulisan ulang tambahan , yang membuat WordPress tahu bahwa itu /custom-view/adalah URL yang valid, tetapi ada hal lain yang harus terjadi di sana.

Jika Anda ingin melakukan ini, Anda harus terhubung ke sistem inti WordPress. Bagian penting di sini adalah menghubungkan ke , bukan memodifikasi . WordPress memiliki tindakan dan filter . Suatu tindakan hanyalah pengumuman ( "Hei, kami sedang menulis <head>tag. Apakah Anda ingin menambahkan sesuatu juga?" ). Filter memungkinkan Anda untuk memodifikasi variabel ( "Ini adalah judul tulisan. Jika Anda ingin memodifikasinya, kembalikan nilai baru" ). Tentu saja, triknya sekarang adalah untuk mengetahui tindakan dan filter mana yang harus Anda gunakan. Ini tergantung pada cara Anda memilih (rintisan halaman atau aturan penulisan ulang baru), jadi saya tidak akan membahas detail di sini.

Anda menentukan tindakan dan filter yang ingin Anda gunakan dalam file plugin atau di file functions.php dari tema Anda. Mereka istimewa karena dimuat ketika WordPress boot , jadi sebelum permintaan utama dieksekusi dan seterusnya. File plugin hanyalah file PHP, ditempatkan di wp-content/plugins/direktori, dengan header khusus sehingga WordPress dapat membaca namanya dan menampilkannya di area administrasi tempat Anda dapat mengaktifkan dan menonaktifkannya (sehingga Anda dapat meninggalkan plugin di direktori tetapi sementara waktu nonaktifkan).

Jan Fabry
sumber
2

Dasar-dasar

Anda harus menyiasati dasar-dasar untuk plugin dan tema. Singkatnya: Mereka adalah penambahan fungsionalitas inti wordpress. Biasanya "Plugin" lebih banyak tentang fungsi dan "Tema" lebih banyak tentang "tampilan". Anda mungkin juga ingin membaca sedikit tentang "API Plugin" .

JSON

Anda mungkin ingin menggunakan skrip json2 yang dibangun di inti untuk menyediakan API "aman".

Contoh JSON

Sisanya akan seperti ini:

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

XML Rpc

Codex juga memiliki sesuatu tentang "XML Rpc" .

API Http

Kemungkinan lain mungkin permintaan http . Pastikan Anda membaca referensi di bagian bawah tautan.


Situs web

Ini tambahan, karena lebih lanjut tentang memberikan API yang dapat dikonsumsi. Penjelasan di sini . Dan ada juga sebuah plugin bernama HookPress yang melakukan pekerjaan ini untuk Anda. Beberapa slide dari penulis juga.

kaisar
sumber
1

Saya menganggap Anda tahu PHP? Atau itu penghalang juga?

Pada dasarnya plugin di WordPress adalah konvensi cara mengemas kode PHP sehingga dikenali dan ditangani oleh inti WordPress. Ini adalah format, bukan fungsi.

Adapun fungsionalitas aktual Anda dapat menjalankan PHP sewenang-wenang, tetapi merupakan praktik yang baik untuk menggunakan API WP untuk kompatibilitas dan keandalan.

Pikirkan kode Anda dalam konteks WP sebagai include(yang akan secara teknis). Dari situlah ruang lingkup kebutuhan dan sumber daya Anda yang akan menentukan berapa banyak yang akan ditulis ulang khusus untuk WordPress.

Jarang
sumber
0

Ya itu mungkin.

kebanyakan plugin dibuat melalui apa yang disebut kait:

sebagai contoh:

add_action("hook", "function")

cukup mudah untuk membangun sendiri sebuah plugin setelah Anda tahu bagaimana kerangka itu, yah ... berfungsi ... Saya akan menyarankan agar Anda mempelajari sendiri hal itu, tempat paling luas untuk pengetahuan (meskipun, bukan yang paling terorganisir - seperti php. net) adalah kodeks wordpress .

Itai Sagi
sumber