- Bahagian ketiga siri boilerplate plugin WordPress memberi tumpuan kepada pelaksanaan fungsi awam yang menghadapi plugin, yang termasuk mengambil semula keutamaan pengguna dan memaparkan notis dengan sewajarnya pada paparan pos tunggalnya.
- Panduan ini menerangkan cara menyediakan tema untuk ujian, bagaimana untuk menyambungkan penapis the_content, bagaimana untuk mengubahsuai kandungan secara kondusif, dan bagaimana untuk mengira perbezaan hari antara masa semasa dan masa yang diubahsuai terakhir.
- Gaya teks notis juga dibincangkan, dengan penulis memberikan panduan gaya mudah untuk memadankan reka bentuk tema keseluruhan. Penulis juga mencadangkan penambahbaikan yang berpotensi, seperti teks dinamik untuk konteks yang berbeza dan notis yang tidak dapat dibatalkan.
- Penulis menyimpulkan dengan menonjolkan manfaat boilerplate plugin WordPress, mencatatkan struktur yang jelas, pematuhan terhadap amalan terbaik, dan aspek penjimatan masa yang mempunyai titik permulaan yang kukuh untuk pembangunan plugin.
Jika anda terlepas Bahagian 1 dan 2, sila cari mereka di bawah:
- plugin wordpress boilerplate bahagian 1: mempercepatkan pembangunan menggunakan boilerplate plugin wordpress
- Plugin WordPress Boilerplate Bahagian 2: Membangunkan Plugin WordPress
Menyediakan tema
kita perlu menyediakan tema kita supaya kita dapat mengujinya kemudian. Kami akan menggunakan dua puluh lima belas tema yang dihantar secara lalai dengan WordPress. Daripada mengisi jawatan secara manual, kami akan menggunakan data ujian unit tema yang disediakan oleh pasukan semakan tema untuk mengisi jawatan.
kita perlu memuat turun tema-unit-test-data.xml yang disediakan pada halaman codex di atas dan mengimportnya ke dalam pemasangan WordPress kami. Fungsi import terbina dalam WordPress boleh didapati dengan menavigasi ke alat> import dari bar sisi.

Ini adalah halaman import WordPress lalai, jadi kami perlu memilih tema-unit-test-data.xml yang dimuat turun sebelum ini dan klik pada butang "Muat naik dan import".

Tekan butang "Hantar" dan tunggu sehingga proses pengimportan dilakukan dengan jayanya.
Sekarang kita sudah bersedia untuk menulis kod yang memaparkan notis kita.
mengaitkan ke dalam penapis the_content
Menggunakan penapis the_content adalah cara yang sempurna untuk mengubah kandungan jawatan yang dipaparkan kepada pengguna. Seperti tutorial sebelumnya, kami akan menambah cangkuk ke loader kelas boilerplate, dengan satu -satunya perbezaan ialah kaedah define_public_hooks akan digunakan dan bukannya define_admin_hooks.
Tambahkan baris kod ini ke dalam kaedah:
<span>$this->loader->add_action( 'the_content', $plugin_public, 'the_content' );</span>Ini bermakna, kita perlu melaksanakan kaedah the_content awam ke dalam kelas usang_notice_public kami. Buka awam/kelas-out-notis-public.php dan ubah suai dengan sewajarnya.
mengubahsuai kandungan
secara kondusif
Kerana penapis the_content digunakan oleh pelbagai plugin, dan teras WordPress dalaman, kita perlu berhati -hati dalam memasukkan kandungan tersuai kami ke dalamnya.kita perlu memastikan bahawa kita hanya memasukkan teks notis ketinggalan zaman apabila satu jawatan dipaparkan, bukan pada indeks pos blog. Untuk melakukan itu, kita boleh menapisnya dengan menggunakan fungsi IS_Main_Query. Fungsi ini berguna apabila kita perlu menentukan sama ada pertanyaan berjalan adalah yang utama atau pertanyaan menengah/adat.
Satu lagi perkara yang perlu kita pertimbangkan ialah kita hanya akan memaparkan teks notis untuk satu pandangan pos pos pos, jadi iS_singular ('post') pengesahan akan menjadi sempurna untuk pekerjaan.
Ini adalah kaedah the_content yang terkini yang terkandung di dalam kelas usang_notice_public.
<span>public function the_content( $post_content ) { </span> <span>if ( is_main_query() && is_singular('post') ) { </span> <span>// do something </span> <span>} </span> <span>return $post_content; </span> <span>}</span>mengira perbezaan hari
Sebelum kita memulakan, mari kita tetapkan kedudukan kita untuk notis muncul sebagai "sebelum" jawatan, dan bilangan hari ambang hingga 30.
Pertama, kita perlu mengambil tetapan yang disimpan plugin kami. Fungsi get_option akan melakukan pekerjaan itu, dan sebagai langkah yang selamat, kita akan lulus nilai lalai sebagai hujah kedua untuk mendapatkan_option.
<span>$this->loader->add_action( 'the_content', $plugin_public, 'the_content' );</span>
Untuk mengira perbezaan hari antara masa semasa dan masa yang diubahsuai terakhir, kita akan memberi instantiasi dua objek DateTime. Kita boleh mendapatkan pengukuran yang tepat mengenai perbezaan masa menggunakan kaedah diff yang dibina ke kelas DateTime. Perhatikan bahawa kelas DateTime hanya tersedia pada php> = 5.3.0.
<span>public function the_content( $post_content ) { </span> <span>if ( is_main_query() && is_singular('post') ) { </span> <span>// do something </span> <span>} </span> <span>return $post_content; </span> <span>}</span>
$ date_diff adalah contoh kelas DateInterval supaya kami akan mempunyai pelbagai data yang tersedia berkaitan dengan perbezaan masa. Sekiranya kita pergi ke var_dump pembolehubah $ date_diff, inilah yang harus kita dapatkan, bergantung pada jawatan yang sedang anda lihat.
<span>$position = get_option( 'outdated_notice_position', 'before' ); </span> <span>$days = (int) get_option( 'outdated_notice_day', 0 );</span>
Kami hanya berminat dengan nilai hari kerana ia akan digunakan sebagai perbandingan terhadap ambang hari -hari kami. Seperti yang saya katakan sebelum ini, kami akan membandingkannya supaya kami dapat menggunakan kelas tertentu untuk elemen div notis kami untuk menggayakannya secara berbeza antara jawatan.
<span>$date_now = new DateTime( current_time('mysql') ); </span> <span>$date_old = new DateTime( get_the_modified_time('Y-m-d H:i:s') ); </span> <span>$date_diff = $date_old->diff( $date_now );</span>
Blok perbandingan mudah ini cukup untuk menentukan kelas mana yang hendak digunakan untuk Div kami. Satu -satunya perkara yang tersisa sekarang adalah untuk benar -benar membina HTML untuk ditambah ke kandungan pos.
Untuk teks siap terjemahan yang lebih baik, kami akan menggunakan fungsi _n untuk memilih teks yang betul untuk digunakan bergantung kepada bilangan hari sejak jawatan itu dikemas kini terakhir. Kemudian, kita akan membungkus teks notis dalam divenya sendiri supaya kita dapat menggayakannya kemudian. Jangan ragu untuk mengubah teks notis dengan keinginan anda sendiri.
<span>object(DateInterval)#286 (8) { </span> <span>["y"]=> </span> <span>int(0) </span> <span>["m"]=> </span> <span>int(0) </span> <span>["d"]=> </span> <span>int(12) </span> <span>["h"]=> </span> <span>int(23) </span> <span>["i"]=> </span> <span>int(17) </span> <span>["s"]=> </span> <span>int(22) </span> <span>["invert"]=> </span> <span>int(0) </span> <span>["days"]=> </span> <span>int(12) </span> <span>}</span>
Pemboleh ubah notis $ kini harus mengandungi markup yang akan kami masukkan ke kandungan pos kami. Satu -satunya perkara yang perlu dilakukan ialah menambahkannya.
<span>if ( $date_diff->days > $days ) { </span> <span>$class = 'is-outdated'; </span> <span>} else { </span> <span>$class = 'is-fresh'; </span> <span>}</span>
sebagai rekap, ini adalah bagaimana kaedah the_content di dalam usang_notice_public akhirnya harus kelihatan.
<span>// Filter the text </span> <span>$notice = sprintf( </span> <span>_n( </span> <span>'This post was last updated %s day ago.', </span> <span>'This post was last updated %s days ago.', </span> <span>$date_diff->days, </span> <span>'outdated-notice' </span> <span>), </span> <span>$date_diff->days </span> <span>); </span> <span>// Add the class </span> <span>$notice = '<div>' . $notice . '</div>'; </span> <span>$notice = sprintf( $notice, $class );</span>
Cuba melayari beberapa halaman untuk melihat apakah plugin kami berfungsi seperti yang dimaksudkan. Inilah yang saya lihat ketika melayari pos "Hello World" di URL

menggayakan teks notis
Kami akan memohon beberapa gaya mudah untuk div notis. Untuk melakukan itu, kami tidak akan mengubah apa -apa berkaitan dengan saiz fon atau keluarga fon yang sudah digunakan. Plus, kami akan meminjam skema warna bootstrap dan gaya buat masa ini.
Buka fail-fail notis-public.css yang terkandung di dalam folder awam/CSS dan tambahkan peraturan ini.
<span>if ( 'after' == $position ) { </span> <span>$post_content .= $notice; </span> <span>} else { </span> <span>$post_content = $notice . $post_content; </span> <span>}</span>
Kami juga memerlukan dua gaya yang berbeza untuk mewakili pasca-fresh, yang merupakan satu gaya untuk .is-segar dan satu lagi untuk .is-outdated. Coretan ini harus melakukan silap mata, memberikan kita skema warna hijau yang bagus untuk jawatan segar, dan skema warna merah untuk jawatan yang sudah lapuk.
<span>public function the_content( $post_content ) { </span> <span>if ( is_main_query() && is_singular('post') ) { </span> <span>$position = get_option( 'outdated_notice_position', 'before' ); </span> <span>$days = (int) get_option( 'outdated_notice_day', 0 ); </span> <span>$date_now = new DateTime( current_time('mysql') ); </span> <span>$date_old = new DateTime( get_the_modified_time('Y-m-d H:i:s') ); </span> <span>$date_diff = $date_old->diff( $date_now ); </span> <span>if ( $date_diff->days > $days ) { </span> <span>$class = 'is-outdated'; </span> <span>} else { </span> <span>$class = 'is-fresh'; </span> <span>} </span> <span>// Filter the text </span> <span>$notice = sprintf( </span> <span>_n( </span> <span>'This post was last updated %s day ago.', </span> <span>'This post was last updated %s days ago.', </span> <span>$date_diff->days, </span> <span>'outdated-notice' </span> <span>), </span> <span>$date_diff->days </span> <span>); </span> <span>// Add the class </span> <span>$notice = '<div>' . $notice . '</div>'; </span> <span>$notice = sprintf( $notice, $class ); </span> <span>if ( 'after' == $position ) { </span> <span>$post_content .= $notice; </span> <span>} else { </span> <span>$post_content = $notice . $post_content; </span> <span>} </span> <span>} </span> <span>return $post_content; </span> <span>}</span>
mari kita menyegarkan pandangan pos dan lihat bagaimana ia digayakan. Contoh jawatan segar dan ketinggalan zaman:


itu! Kami kini mempunyai plugin berfungsi sepenuhnya yang dibangunkan berdasarkan plugin WordPress Plugin Boilerplate.
penambahbaikan
Terdapat pelbagai perkara yang boleh diperbaiki berdasarkan apa yang telah kami lakukan setakat ini. Antaranya ialah:
- teks dinamik untuk konteks yang berbeza, di mana kita boleh menggunakan teks yang berbeza untuk notis yang sudah lapuk.
- Keluarkan enqueuing skrip notis-public.js yang ketinggalan zaman kerana ia tidak digunakan.
- notis yang tidak dapat dibatalkan supaya ia tidak mengganggu pengalaman pengguna semasa membaca siaran.
Kesimpulan
Boilerplate plugin WordPress menyediakan titik permulaan yang sempurna untuk membangunkan sebarang plugin dari awal. Dalam bahagian terakhir siri ini, kami selesai dengan membangunkan fungsi awam yang menghadapi plugin kami. Pengubahsuaian walaupun agak mudah, dilakukan dalam sedikit masa, sementara masih mengekalkan corak OOP yang ditubuhkan oleh boilerplate itu sendiri dan mematuhi piawaian dan amalan terbaik.
Salinan penuh kod boleh didapati seperti biasa di GitHub di cawangan bahagian-3.
Soalan Lazim (Soalan Lazim) Mengenai WordPress Plugin Boilerplate
Apakah boilerplate plugin WordPress dan mengapa penting? Ia menyediakan struktur yang jelas dan konsisten yang mudah difahami dan bekerja dengan, terutamanya bagi pemaju yang baru untuk pembangunan plugin WordPress. Ia penting kerana ia menjimatkan masa dan usaha dengan menyediakan titik permulaan yang kukuh, mengurangkan keperluan untuk menulis kod biasa dari awal. Ia juga menggalakkan amalan terbaik dalam pengekodan, meningkatkan prestasi, keselamatan, dan mengekalkan plugin anda. Anda perlu terlebih dahulu memuat turunnya dari repositori GitHubnya. Setelah dimuat turun, anda boleh menamakan semula direktori dan fail boilerplate untuk memadankan spesifik plugin anda. Kod boilerplate adalah baik, membimbing anda di mana untuk meletakkan kod tersuai anda. Ingat untuk mengemas kini tajuk plugin dalam fail plugin utama untuk mencerminkan butiran plugin anda.
Bagaimana saya boleh menyumbang kepada projek boilerplate plugin WordPress? Anda boleh menyumbang dengan melaporkan pepijat, mencadangkan penambahbaikan, atau mengemukakan permintaan tarik pada repositori GitHubnya. Sebelum menyumbang, pastikan anda membaca dan memahami garis panduan sumbangan projek. dan boleh diurus. Ia terdiri daripada tiga direktori utama: 'admin', 'termasuk', dan 'awam'. Direktori 'Admin' mengandungi fail CSS, JavaScript, dan PHP untuk bahagian khusus admin plugin. Direktori 'termasuk' digunakan untuk menentukan kelas plugin teras dan fungsi bersama lain. Direktori 'awam' mengandungi fail untuk bahagian yang menghadap ke plugin. Ciri ke plugin anda, anda biasanya akan membuat kelas baru untuk ciri tersebut dalam direktori 'Termasuk'. Kelas ini harus menentukan semua cangkuk yang perlu dijalankan oleh ciri anda. Kemudian, anda meneliti kelas ini dalam kelas plugin utama dan menambahnya ke fungsi 'Run'. Pendekatan modular ini menjadikannya mudah untuk menambah, membuang, atau mengubah suai ciri dalam plugin anda. mengendalikan pilihan plugin dalam direktori 'admin'. Kelas ini termasuk fungsi untuk mendaftarkan tetapan, menentukan bahagian dan bidang, dan menjadikan halaman tetapan. Anda boleh memperluaskan kelas ini untuk mengendalikan pilihan khusus plugin anda.
Bagaimana saya mengantarabangsakan plugin saya dengan boilerplate plugin WordPress? direktori. Kelas ini memuatkan domain teks plugin anda, yang membolehkannya diterjemahkan ke dalam bahasa lain. Anda hanya perlu menggantikan domain teks pemegang tempat di dalam boilerplate dengan domain teks plugin anda.
Bagaimana saya boleh memasangkan skrip dan gaya dengan boilerplate plugin wordpress? untuk memaparkan skrip dan gaya dalam direktori 'admin' dan 'awam'. Kelas -kelas ini termasuk fungsi untuk mendaftar dan memasangkan skrip dan gaya anda, memastikan mereka dimuatkan di tempat yang betul dan pada masa yang tepat.
Bagaimana saya menyahpasang plugin saya dengan bersih dengan plugin boilerplate plugin WordPress?
Plugin WordPress Plugin Boilerplate termasuk fail uninstall.php yang dijalankan apabila plugin anda tidak dipasang dari papan pemuka WordPress. Fail ini harus mengandungi sebarang kod pembersihan, seperti mengeluarkan pilihan plugin atau jadual pangkalan data. Ini memastikan bahawa plugin anda tidak meninggalkan jejak di belakang apabila ia tidak dipasang.
Atas ialah kandungan terperinci Plugin WordPress Boilerplate Bahagian 3: Langkah Terakhir. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Adakah anda ingin memindahkan blog anda dari wordpress.com ke wordpress.org? Ramai pemula bermula dengan WordPress.com tetapi dengan cepat menyedari batasan mereka dan ingin beralih ke platform WordPress.org yang dihoskan sendiri. Dalam panduan langkah demi langkah ini, kami akan menunjukkan kepada anda bagaimana untuk memindahkan blog anda dengan betul dari WordPress.com ke WordPress.org. Mengapa berhijrah dari wordpress.com ke wordpress.org? WordPress.com membolehkan sesiapa membuat akaun

Adakah anda mencari cara untuk mengautomasikan laman web WordPress dan akaun media sosial anda? Dengan automasi, anda akan dapat berkongsi catatan blog atau kemas kini secara automatik di Facebook, Twitter, LinkedIn, Instagram dan banyak lagi. Dalam artikel ini, kami akan menunjukkan kepada anda bagaimana untuk mengautomasikan WordPress dan media sosial dengan mudah menggunakan IFTTT, Zapier, dan Automator Uncanny. Mengapa mengautomasikan WordPress dan media sosial? Automatikkan WordPre anda

Hanya beberapa hari yang lalu, salah seorang pengguna kami melaporkan masalah yang luar biasa. Masalahnya ialah dia mencapai had item menu tersuai. Mana -mana kandungan yang dia simpan selepas mencapai had item menu tidak akan disimpan sama sekali. Kami tidak pernah mendengar isu ini, jadi kami memutuskan untuk mencubanya pada pemasangan tempatan kami. Lebih daripada 200 item menu dicipta dan disimpan. Kesannya sangat baik. Pindahkan 100 item ke senarai juntai bawah dan simpan dengan baik. Kemudian kami tahu ia berkaitan dengan pelayan. Selepas penyelidikan lanjut, nampaknya ramai yang lain menghadapi masalah yang sama. Selepas menggali lebih mendalam, kami mendapati tiket TRAC (#14134) yang menyerlahkan isu ini. Membaca sangat

Adakah anda perlu menambah metafields tersuai ke taksonomi tersuai di WordPress? Taksonomi tersuai membolehkan anda mengatur kandungan selain kategori dan tag. Kadang -kadang ia berguna untuk menambah medan lain untuk menggambarkannya. Dalam artikel ini, kami akan menunjukkan kepada anda cara menambah Metafields lain kepada taksonomi yang mereka buat. Bilakah Metafields tersuai ditambah kepada taksonomi tersuai? Apabila anda membuat kandungan baru di laman WordPress anda, anda boleh mengaturnya menggunakan dua taksonomi lalai (kategori dan tag). Sesetengah laman web mendapat manfaat daripada penggunaan taksonomi tersuai. Ini membolehkan anda menyusun kandungan dengan cara lain. Contohnya,

Windows Live Writer adalah alat serba boleh yang membolehkan anda menyiarkan siaran terus dari desktop anda ke blog WordPress anda. Ini bermakna anda tidak perlu log masuk ke panel admin WordPress untuk mengemas kini blog anda sama sekali. Dalam tutorial ini, saya akan menunjukkan kepada anda bagaimana untuk membolehkan penerbitan desktop untuk blog WordPress anda menggunakan Windows Live Writer. Cara Menyiapkan Windows Live Writer di WordPress Langkah 1: Untuk menggunakan Windows Live Writer di WordPR

Baru -baru ini, salah seorang pengguna kami melaporkan masalah pemasangan yang sangat pelik. Apabila menulis jawatan, mereka tidak dapat melihat apa -apa yang mereka tulis. Kerana teks dalam editor pos berwarna putih. Lebih -lebih lagi, semua butang editor visual hilang, dan keupayaan untuk beralih dari visual ke HTML tidak berfungsi sama ada. Dalam artikel ini, kami akan menunjukkan kepada anda bagaimana untuk memperbaiki teks putih dan isu butang yang hilang dalam editor visual WordPress. Jadilah nota pemula: Jika anda mencari butang tersembunyi yang boleh dilihat dalam tangkapan skrin laman web lain, anda mungkin mencari sinki dapur. Anda perlu mengklik ikon sinki dapur untuk melihat pilihan lain seperti garis bawah, salin dari Word, dll.

Adakah anda ingin memaparkan avatar dalam e -mel pengguna di WordPress? Gravatar adalah perkhidmatan rangkaian yang menghubungkan alamat e -mel pengguna ke avatar dalam talian. WordPress secara automatik memaparkan gambar profil pelawat di bahagian komen, tetapi anda juga mungkin mahu menambahkannya ke kawasan lain di laman web ini. Dalam artikel ini, kami akan menunjukkan kepada anda bagaimana untuk memaparkan avatar dalam e -mel pengguna di WordPress. Apa itu Gravatar dan mengapa saya harus memaparkannya? Gravatar bermaksud avatar yang diiktiraf secara global, yang membolehkan orang ramai menghubungkan imej ke alamat e -mel mereka. Sekiranya laman web menyokong

Adakah anda ingin menukar lokasi muat naik media lalai di WordPress? Memindahkan fail media ke folder lain boleh meningkatkan kelajuan dan prestasi laman web dan membantu anda membuat sandaran lebih cepat. Ia juga memberi anda kebebasan untuk mengatur fail anda dengan cara yang sesuai dengan anda. Dalam artikel ini, kami akan menunjukkan kepada anda cara menukar lokasi muat naik media lalai di WordPress. Mengapa menukar lokasi muat naik media lalai? Secara lalai, WordPress menyimpan semua imej dan fail media lain dalam/WP-content/muat naik/folder. Dalam folder ini, anda akan menemui kanak -kanak tahun dan bulan yang berbeza


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Dreamweaver Mac版
Alat pembangunan web visual

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

mPDF
mPDF ialah perpustakaan PHP yang boleh menjana fail PDF daripada HTML yang dikodkan UTF-8. Pengarang asal, Ian Back, menulis mPDF untuk mengeluarkan fail PDF "dengan cepat" dari tapak webnya dan mengendalikan bahasa yang berbeza. Ia lebih perlahan dan menghasilkan fail yang lebih besar apabila menggunakan fon Unicode daripada skrip asal seperti HTML2FPDF, tetapi menyokong gaya CSS dsb. dan mempunyai banyak peningkatan. Menyokong hampir semua bahasa, termasuk RTL (Arab dan Ibrani) dan CJK (Cina, Jepun dan Korea). Menyokong elemen peringkat blok bersarang (seperti P, DIV),

Pelayar Peperiksaan Selamat
Pelayar Peperiksaan Selamat ialah persekitaran pelayar selamat untuk mengambil peperiksaan dalam talian dengan selamat. Perisian ini menukar mana-mana komputer menjadi stesen kerja yang selamat. Ia mengawal akses kepada mana-mana utiliti dan menghalang pelajar daripada menggunakan sumber yang tidak dibenarkan.

Penyesuai Pelayan SAP NetWeaver untuk Eclipse
Integrasikan Eclipse dengan pelayan aplikasi SAP NetWeaver.