Paparkan maklumat tentang pemalam WordPress.org di tapak web anda
Dalam bahagian pertama artikel ini, kami membincangkan cara menggunakan fungsi terbina dalam untuk berkomunikasi dengan WordPress.org dan mendapatkan butiran pemalam.
Dalam tutorial ini, kami akan mempraktikkan teori dan mencipta pemalam ringkas yang membolehkan kami memaparkan butiran sebarang pemalam yang dihoskan di WordPress.org di tapak web WordPress kami menggunakan kod pendek. p>
Mulakan
Saya menganggap anda seorang pembangun pemalam dan mengetahui asasnya, tetapi jika ragu-ragu saya mengesyorkan membaca dua artikel berikut:
- Dua pendekatan untuk membangunkan pemalam WordPress: Pengaturcaraan fungsional
- Dua pendekatan untuk membangunkan pemalam WordPress: Pengaturcaraan berorientasikan objek
Apa yang sedang kita lakukan?
Dengan pemalam ini, kami ingin mencipta kod pendek, seperti [mpi slug='my-plugin-information' field='version']
, yang boleh menerima dua atribut: "slug" dan Based pada "medan", kami kemudian mendapatkan dan memaparkan maklumat untuk mana-mana pemalam yang dihoskan dalam repositori WordPress.org. [mpi slug='my-plugin-information' field='version']
,它可以接受两个属性:“slug”和“field”,然后基于然后,我们检索并显示 WordPress.org 存储库中托管的任何插件的信息。
创建插件库
让我们首先在 wp-content/plugins 目录中创建一个名为 my-plugin-information 的文件夹。在其中创建一个名为 my-plugin-info.php 的文件,并将以下代码粘贴到其中:
<?php /* Plugin Name: My Plugin Info Plugin URI: https://myplugininfo.com Description: Communicate with WordPress.org Plugins API to retrive your Plugin Information Version: 0.1 Author: Harish Author Email: mye@email.com License: GPL3 */ if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly if ( ! class_exists( 'DOT_MyPluginInfo' ) ) { class DOT_MyPluginInfo { /** * Constructor */ function __construct() { //Hook up to the init action add_action( 'init', array( &$this, 'init_my_plugin_info' ) ); } /** * Runs when the plugin is initialized */ function init_my_plugin_info() { // Register the shortcode [mpi slug='my-plugin-info' field='version'] add_shortcode( 'mpi', array( &$this, 'render_mpi' ) ); } function render_mpi($atts) { } } // end class new DOT_MyPluginInfo(); } ?>
我们做了什么?
在上面的代码中,我们创建并初始化了插件类 DOT_MyPluginInfo
。其中包含任何插件的通用块,例如 __construct()
方法。
函数 init_my_plugin_info
与 init
操作挂钩,以便它在加载 WordPress 之后但在发送任何标头之前运行。在函数 init_my_plugin_info
中,我们使用 add_shortcode
函数注册了我们的短代码。
注意:要了解有关 add_shortcode
的更多信息,请查看 Codex。
上面的插件现在有足够的代码可以被 WordPress 从插件仪表板识别。如果您已经按照说明创建了文件,您现在可以访问插件页面并激活此插件。
设置简码
由于我们希望灵活地选择要显示有关插件的信息,因此我们创建了一个具有两个属性的短代码。第一个称为“slug”将用于指定需要检索哪个插件的数据。第二个属性“field”将用于指定我们需要显示的插件的具体信息。
例如,如果我们想显示该插件的下载次数,我们只需在帖子编辑器下方添加文本,最终结果应该是“下载了 100 次”之类的内容。 p>
Downloaded [mpi slug='my-plugin-information' field='downloaded'] times.
使用 add_shortcode
我们注册了我们的短代码,以便每当在帖子内容中找到短代码时,都会调用函数 render_mpi()
来处理它。从现在开始,其余代码将放置在该函数内来处理我们的短代码。
使用 render_mpi()
处理短代码
要显示插件信息,我们首先需要处理短代码以获取属性。在 render_api
Mari mulakan dengan mencipta folder yang dipanggil my-plugin-information di dalam direktori wp-content/plugins. Buat fail bernama my-plugin-info.php di dalamnya dan tampal kod berikut ke dalamnya:
// get our variable from $atts extract( shortcode_atts( array( 'slug' => '', //foo is a default value 'field' => '' ), $atts ) );
Dalam kod di atas, kami mencipta dan memulakan kelas pemalam
DOT_MyPluginInfo
. Ia mengandungi blok biasa untuk mana-mana pemalam, seperti kaedah __construct()
. Fungsi
init_my_plugin_info
memaut ke dalam tindakan init
supaya ia berjalan selepas WordPress dimuatkan tetapi sebelum sebarang pengepala dihantar. Dalam fungsi init_my_plugin_info
kami mendaftarkan kod pendek kami menggunakan fungsi add_shortcode
.
Nota: Untuk mengetahui lebih lanjut tentang add_shortcode
, lihat Codex.
🎜Tetapkan kod pendek🎜 🎜Memandangkan kami mahukan fleksibiliti untuk memilih maklumat yang hendak dipaparkan tentang pemalam, kami mencipta kod pendek dengan dua atribut. Yang pertama dipanggil "slug" akan digunakan untuk menentukan data pemalam yang perlu diambil. Atribut kedua "medan" akan digunakan untuk menentukan maklumat khusus pemalam yang perlu kami paparkan. 🎜 🎜Sebagai contoh, jika kami ingin memaparkan bilangan muat turun pemalam, kami hanya akan menambah teks di bawah editor siaran dan hasil akhir mestilah seperti "Dimuat turun 100 kali." 🎜
/** * Check if slug exists */ if ( ! $slug ) { return false; } /** * Check if field exists * Return value based on the field attribute */ if ( ! $field ) { return false; } else { } // $field check
add_shortcode
kami mendaftarkan shortcode kami supaya apabila kod pendek ditemui dalam kandungan pos, fungsi render_mpi()
dipanggil untuk mengendalikannya. Mulai sekarang, selebihnya kod akan diletakkan di dalam fungsi ini untuk mengendalikan kod pendek kami. 🎜
🎜Gunakan render_mpi()
untuk memproses kod pendek
🎜
🎜Untuk memaparkan maklumat pemalam, kami perlu memproses kod pendek terlebih dahulu untuk mendapatkan atribut. Tambahkan kod berikut dalam fungsi render_api
: 🎜
// Sanitize attributes $slug = sanitize_title( $slug ); $field = sanitize_title( $field );
// Create a empty array with variable name different based on plugin slug $mpi_transient_name = 'mpi-' . $slug;
/** * Check if transient with the plugin data exists */ $mpi_info = get_transient( $mpi_transient_name );
为什么要经历这一切?
- 单独保存每个插件的信息
- 减少向 WordPress.org 发出的请求
- 通过直接从您自己的网站提供数据来更快地加载数据
让我们首先创建一个变量 $mpi_transient_name
来保存基于“slug”属性的唯一瞬态名称。
// Create a empty array with variable name different based on plugin slug $mpi_transient_name = 'mpi-' . $slug;
接下来我们检查瞬态是否已经存在:
/** * Check if transient with the plugin data exists */ $mpi_info = get_transient( $mpi_transient_name );
如果瞬态存在,我们将继续根据“field”属性显示数据,否则我们使用 plugins_api
连接到 WordPress.org 并请求插件信息。
if ( empty( $mpi_info ) ) { /** * Connect to WordPress.org using plugins_api * About plugins_api - * https://code.tutsplus.com/tutorials/communicating-with-the-wordpress-org-plugin-api--wp-33069 */ require_once( ABSPATH . 'wp-admin/includes/plugin-install.php' ); $mpi_info = plugins_api( 'plugin_information', array( 'slug' => $slug ) ); // Check for errors with the data returned from WordPress.org if ( ! $mpi_info or is_wp_error( $mpi_info ) ) { return false; } // Set a transient with the plugin data // Use Options API with auto update cron job in next version. set_transient( $mpi_transient_name, $mpi_info, 1 * HOUR_IN_SECONDS ); }
在上面的代码中,我们做了三件事:
- 我们连接到 WordPress.org 并请求插件信息。然后该请求被保存在名为
$mpi_info
的变量中 - 然后我们进行错误检查,以确保返回的数据是否没有错误
- 最后,我们创建了一个过期日期为一小时的新瞬态
现在,如果 slug 属性的值为“my-plugin-information
”,那么存储插件信息的瞬态名称将为“mpi-my-plugin-information
”。
注意:要了解有关 plugins_api
的更多信息,请参阅本系列的第一篇文章,如本文顶部所示。
显示插件信息
最后一步涉及根据“field”属性的值返回特定信息。为此,我们只需使用单独的检查即可。
if ( $field == "downloaded" ) { return $mpi_info->downloaded; } if ( $field == "name" ) { return $mpi_info->name; } if ( $field == "slug" ) { return $mpi_info->slug; } if ( $field == "version" ) { return $mpi_info->version; } if ( $field == "author" ) { return $mpi_info->author; } if ( $field == "author_profile" ) { return $mpi_info->author_profile; } if ( $field == "last_updated" ) { return $mpi_info->last_updated; } if ( $field == "download_link" ) { return $mpi_info->download_link; }
总结
完整的插件代码:
<?php /* Plugin Name: My Plugin Information Plugin URI: https://code.tutsplus.com Description: Communicate with WordPress.org Plugins API to retrive your Plugin Information Version: 0.1.1 Author: Harish Author Email: me@email.com License: Copyright 2013 Harish This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License, version 3, as published by the Free Software Foundation. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly if ( ! class_exists( 'DOT_MyPluginInfo' ) ) { class DOT_MyPluginInfo { /** * Constructor */ function __construct() { //Hook up to the init action add_action( 'init', array( &$this, 'init_my_plugin_info' ) ); } /** * Runs when the plugin is initialized */ function init_my_plugin_info() { // Register the shortcode [mpi slug='my-plugin-info' field='version'] add_shortcode( 'mpi', array( &$this, 'render_mpi' ) ); } function render_mpi($atts) { // get our variable from $atts extract(shortcode_atts(array( 'slug' => '', //foo is a default value 'field' => '' ), $atts)); /** * Check if slug exists */ if ( ! $slug ) { return false; } /** * Check if field exists * Return value based on the field attribute */ if ( ! $field ) { return false; } else { // Sanitize attributes $slug = sanitize_title( $slug ); $field = sanitize_title( $field ); // Create a empty array with variable name different based on plugin slug $mpi_transient_name = 'mpi' . $slug; /** * Check if transient with the plugin data exists */ $mpi_info = get_transient( $mpi_transient_name ); if ( empty( $mpi_info ) ) { /** * Connect to WordPress.org using plugins_api * About plugins_api - * https://code.tutsplus.com/tutorials/communicating-with-the-wordpress-org-plugin-api--wp-33069 */ require_once( ABSPATH . 'wp-admin/includes/plugin-install.php' ); $mpi_info = plugins_api( 'plugin_information', array( 'slug' => $slug ) ); // Check for errors with the data returned from WordPress.org if ( ! $mpi_info or is_wp_error( $mpi_info ) ) { return false; } // Set a transient with the plugin data // Use Options API with auto update cron job in next version. set_transient( $mpi_transient_name, $mpi_info, 1 * HOUR_IN_SECONDS ); } if ( $field == "downloaded" ) { return $mpi_info->downloaded; } if ( $field == "name" ) { return $mpi_info->name; } if ( $field == "slug" ) { return $mpi_info->slug; } if ( $field == "version" ) { return $mpi_info->version; } if ( $field == "author" ) { return $mpi_info->author; } if ( $field == "author_profile" ) { return $mpi_info->author_profile; } if ( $field == "last_updated" ) { return $mpi_info->last_updated; } if ( $field == "download_link" ) { return $mpi_info->download_link; } } // $field check } // render_mpi() } // end class new DOT_MyPluginInfo(); } ?>
此插件代码可在 GitHub 上找到,您也可以从 WordPress.org 下载
付诸行动
现在您只需转到帖子编辑器并添加一个短代码,例如:
Downloaded [mpi slug='my-plugin-information' field='downloaded'] times.
它会显示:
Downloaded 10 times.
显示有关插件的其他信息的示例简码
通过替换“field”属性的值,您可以显示不同的信息,例如:
- 插件名称:
[mpi slug='my-plugin-information' field='name']
- 插件版本:
[mpi slug='my-plugin-information' field='version']
- 插件 Slug:
[mpi slug='my-plugin-information' field='slug']
- 插件作者(返回名称和链接):
[mpi slug='my-plugin-information' field='author']
- 作者简介(返回个人资料地址):
[mpi slug='my-plugin-information' field='author_profile']
- 最后更新:
[mpi slug='my-plugin-information' field='last_updated']
- 下载链接:
[mpi slug='my-plugin-information' field='download_link']
改进
为了简单起见,我使用瞬态来保存插件信息。然而,瞬态从来就不是用来保存重要数据的。另一种方法是使用选项 API、add_options()
或作为 post meta 保存插件数据,然后安排一个 cron 任务每小时更新一次数据。
接下来做什么?
使用 plugins_api
,我们已经演示了通信和检索 WordPress.org 上托管的任何插件的信息是多么容易。
您可能还想查看其他插件,例如 Plugin Info(也使用 plugins_api
和 I Make Plugins,看看它们如何完成相同的任务。
Atas ialah kandungan terperinci Paparkan maklumat tentang pemalam WordPress.org di tapak web anda. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

WordPress mudah untuk pemula bermula. 1. Selepas log masuk ke latar belakang, antara muka pengguna adalah intuitif dan papan pemuka mudah menyediakan semua pautan fungsi yang diperlukan. 2. Operasi asas termasuk mencipta dan mengedit kandungan. Editor WYSIWYG memudahkan penciptaan kandungan. 3. Pemula boleh mengembangkan fungsi laman web melalui pemalam dan tema, dan lengkung pembelajaran wujud tetapi boleh dikuasai melalui amalan.

Blog adalah platform yang ideal untuk orang ramai untuk menyatakan pendapat, pendapat dan pendapat mereka dalam talian. Ramai pemula bersemangat untuk membina laman web mereka sendiri tetapi teragak -agak untuk bimbang tentang halangan teknikal atau isu kos. Walau bagaimanapun, apabila platform terus berkembang untuk memenuhi keupayaan dan keperluan pemula, kini mula menjadi lebih mudah dari sebelumnya. Artikel ini akan membimbing anda langkah demi langkah bagaimana untuk membina blog WordPress, dari pemilihan tema untuk menggunakan plugin untuk meningkatkan keselamatan dan prestasi, membantu anda membuat laman web anda dengan mudah. Pilih topik dan arah blog Sebelum membeli nama domain atau mendaftarkan tuan rumah, sebaiknya mengenal pasti topik yang anda rancangkan. Laman web peribadi boleh berputar di sekitar perjalanan, memasak, ulasan produk, muzik atau hobi yang mencetuskan minat anda. Memfokuskan pada bidang yang anda benar -benar berminat dapat menggalakkan penulisan berterusan

WordpressisgoodforvirtualyWebprojectduetoitsversatilityasacms.itexcelsin: 1) keramahan pengguna, membolehkan mudah

Boleh belajar WordPress dalam masa tiga hari. 1. Menguasai pengetahuan asas, seperti tema, pemalam, dan lain-lain. 2. Memahami fungsi teras, termasuk prinsip pemasangan dan kerja. 3. Belajar penggunaan asas dan lanjutan melalui contoh. 4. Memahami teknik debugging dan cadangan pengoptimuman prestasi.

Baru -baru ini, kami menunjukkan kepada anda bagaimana untuk mencipta pengalaman peribadi untuk pengguna dengan membenarkan pengguna menyimpan jawatan kegemaran mereka di perpustakaan yang diperibadikan. Anda boleh mengambil hasil yang diperibadikan ke tahap yang lain dengan menggunakan nama mereka di beberapa tempat (iaitu, skrin selamat datang). Nasib baik, WordPress menjadikannya sangat mudah untuk mendapatkan maklumat mengenai pengguna log masuk. Dalam artikel ini, kami akan menunjukkan kepada anda bagaimana untuk mendapatkan maklumat yang berkaitan dengan pengguna yang sedang dilog masuk. Kami akan menggunakan get_currentuserInfo (); fungsi. Ini boleh digunakan di mana sahaja dalam tema (header, footer, sidebar, template halaman, dll.). Agar ia berfungsi, pengguna mesti dilog masuk. Oleh itu, kita perlu menggunakan

Wix sesuai untuk pengguna yang tidak mempunyai pengalaman pengaturcaraan, dan WordPress sesuai untuk pengguna yang mahukan lebih banyak keupayaan kawalan dan pengembangan. 1) Wix menyediakan editor drag-and-drop dan templat yang kaya, menjadikannya mudah untuk membina sebuah laman web dengan cepat. 2) Sebagai CMS sumber terbuka, WordPress mempunyai ekosistem komuniti dan plug-in yang besar, menyokong penyesuaian dan pengembangan yang mendalam.

Adakah anda ingin tahu cara memaparkan kategori kanak -kanak di halaman arkib kategori induk? Apabila anda menyesuaikan halaman arkib klasifikasi, anda mungkin perlu melakukan ini untuk menjadikannya lebih berguna kepada pelawat anda. Dalam artikel ini, kami akan menunjukkan kepada anda bagaimana untuk memaparkan kategori kanak -kanak dengan mudah di halaman arkib kategori induk. Mengapa subkategori muncul di halaman arkib kategori induk? Dengan memaparkan semua kategori kanak -kanak di halaman arkib kategori induk, anda boleh menjadikannya kurang generik dan lebih berguna kepada pelawat. Sebagai contoh, jika anda menjalankan blog WordPress mengenai buku dan mempunyai taksonomi yang disebut "tema", anda boleh menambah sub-taksonomi seperti "novel", "bukan fiksyen" supaya pembaca anda dapat

Salah satu pengguna kami meminta laman web lain bagaimana untuk memaparkan bilangan pertanyaan dan masa pemuatan halaman di footer. Anda sering melihat ini di kaki laman web anda, dan ia mungkin memaparkan sesuatu seperti: "64 pertanyaan dalam 1.248 saat". Dalam artikel ini, kami akan menunjukkan kepada anda bagaimana untuk memaparkan bilangan pertanyaan dan masa pemuatan halaman di WordPress. Cukup tampal kod berikut di mana sahaja yang anda suka dalam fail tema (mis. Footer.php). pertanyaan
