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?
sumber
Jawaban:
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 kategoribanana
dan 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).sumber
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:
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.
sumber
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.sumber
Ya itu mungkin.
kebanyakan plugin dibuat melalui apa yang disebut kait:
sebagai contoh:
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 .
sumber