Tema tidak dimaksudkan untuk berfungsi, tetapi sebagai pembangun tema, kami terutamanya perlu menyertakan beberapa ciri untuk menjadikan tema kami lebih baik dan berfungsi.
Dalam tutorial ini kita akan belajar tentang istilah "alam pemalam" dan belajar menggunakan alat yang sangat baik yang ditulis oleh Thomas Griffin: perpustakaan pengaktifan pemalam TGM.
Tema direka untuk menukar reka bentuk laman web WordPress anda. Sebaik-baiknya, ia mestilah visual. Tetapi dalam zaman kegemilangan WordPress, pembangun tema sering memasukkan ciri fungsi dalam tema mereka untuk kekal berdaya saing di pasaran. Ia sepatutnya begitu, tetapi ia adalah.
Ini adalah pencerobohan wilayah pemalam. Kita boleh mentakrifkan "domain pemalam" secara ringkas: bahagian fungsi kod terletak dalam sempadan domain. Setiap kod yang mengubah fungsi tapak web anda perlu tersedia sebagai pemalam (jika ia belum tersedia dalam teras WordPress).
Dalam salah satu artikel saya sebelum ini (dalam siri "Membuat tema WordPress yang sempurna") saya menyebut peraturan praktikal dalam "dunia pemalam":
Jika ciri itu berkaitan dengan penampilan visual tapak, ia harus berada dalam tema, tetapi jika ia berkaitan dengan fungsi tapak, ia harus disertakan sebagai pemalam yang berasingan dalam tema.
Mudah kan?
Walaupun orang masih cenderung untuk mengekodkan bit ciri ke dalam tema mereka, direktori tema (seperti WordPress.org dan ThemeForest) tidak menerima tema yang menceroboh "alam pemalam". Oleh itu, menyediakan fungsi dengan tema menjadi masalah.
Nasib baik, terdapat penyelesaian yang agak mudah, dan ia tidak melanggar peraturan "alam pemalam".
TGM Plugin Activation ialah perpustakaan ringan yang direka untuk menggabungkan tema dengan pemalam. Ideanya mudah: apabila pengguna memasang tema anda, ia membenarkan pengguna memasang pemalam daripada WordPress.org, tapak web luaran atau folder tema. Begini cara pencipta perpustakaan, Thomas Griffin, mentakrifkan alat kecil yang berguna ini:
TGM Plugin Activation ialah perpustakaan PHP yang membolehkan anda meminta atau mengesyorkan pemalam dengan mudah untuk tema (dan pemalam WordPress anda). Ia membolehkan pengguna anda memasang dan juga mengaktifkan pemalam secara automatik dalam cara tunggal atau kelompok menggunakan kelas, fungsi dan antara muka WordPress asli. Anda boleh merujuk pemalam prabungkus, pemalam dari repositori pemalam WordPress, atau pemalam yang dihoskan di tempat lain di internet.
Ini mungkin penyelesaian paling bijak untuk masalah "plugin territory invasion". Dan ia mudah untuk digunakan.
Jom tengok!
Ia sangat mudah untuk memasang dan mengaktifkan pemalam TGM. Ikuti sahaja langkah berikut:
class-tgm-plugin-activation.php
ke folder tema anda (di mana-mana sahaja yang anda suka). class-tgm-plugin-activation.php
解压到您的主题文件夹(任何您喜欢的位置)。functions.php
文件并使用 require_once()
函数在主题中(一次)请求类文件。add_action()
函数将其挂钩到 tgmpa_register
。这非常简单,您甚至不需要复杂的 PHP 代码来要求或推荐插件。看一下下面的代码:
<?php /** * Since I'm already doing a tutorial, I'm not going to include comments to * this code, but if you want, you can check out the "example.php" file * inside the ZIP you downloaded - it has a very detailed documentation. */ require_once dirname( __FILE__ ) . '/class-tgm-plugin-activation.php'; add_action( 'tgmpa_register', 'mytheme_require_plugins' ); function mytheme_require_plugins() { $plugins = array( /* The array to install plugins */ ); $config = array( /* The array to configure TGM Plugin Activation */ ); tgmpa( $plugins, $config ); } ?>
从现在开始,您可以通过在刚刚创建的函数中设置 $plugins
变量来让用户安装新插件。
让我们看看它是如何完成的。
从上面可以看出,$plugins
functions.php
tema anda dan gunakan fungsi require_once()
untuk meminta fail kelas (sekali) dalam tema anda. Buat fungsi untuk mengkonfigurasi pengaktifan pemalam TGM dan sangkutkannya ke
tgmpa_register
melalui fungsi add_action()
. 🎜
🎜Selesai! 🎜
🎜Sangat mudah, anda tidak memerlukan kod PHP yang rumit untuk meminta atau mengesyorkan pemalam. Lihat kod di bawah: 🎜
<?php $plugins = array( array( /* my first plugin */ ), array( /* my second plugin */ ), array( /* my third plugin */ ), // ... array( /* my nth plugin */ ) ); ?>
$plugins
dalam fungsi yang baru anda buat. 🎜
🎜Mari kita lihat bagaimana ia dilakukan. 🎜
🎜Pasang pemalam melalui pengaktifan pemalam TGM🎜
🎜Seperti yang anda boleh lihat daripada di atas, pembolehubah $plugins
ialah tatasusunan. Untuk menentukan pemalam untuk dipasang, anda perlu mencipta tatasusunan dalam tatasusunan itu (supaya anda boleh menetapkan parameter anda sendiri). Kedengaran sukar, tetapi tidak: 🎜
<?php $plugins = array( array( 'name' => 'BuddyPress', 'slug' => 'buddypress', 'required' => false, // this plugin is recommended ) ); ?>
name
(字符串,必需)- 插件的名称。slug
(字符串,必需)- 插件的 slug(通常是其文件夹的名称)。required
(布尔值,必需) - 如果设置为 true
,您的主题将“需要”该插件。如果false
,主题将“推荐”它。source
(字符串,有时需要)- 插件的源。如果是 WordPress.org 插件,则不应使用此参数;否则,这是必需的。version
(字符串,可选) - 插件所需的最低版本。例如;如果主题用户已经安装了所需的插件,但没有达到您指定的最低版本号,TGM 插件激活会警告用户进行更新。force_activation
(布尔值,可选) - 如果设置为 true
,当您的主题处于活动状态时,用户将无法停用插件。有点烦人,但在某些情况下可能是必要的。force_deactivation
(布尔值,可选) - 如果设置为 true
,一旦用户切换主题,插件将被停用。external_url
(字符串,可选) - 如果设置,插件的名称将链接到插件要求通知中的此地址。您可以通过三个选项让您的用户通过 TGM 插件激活安装插件:您可以从 WordPress 插件目录、外部源(例如您自己的服务器或 CDN)或您的主题文件夹(例如/my-theme/plugins/shortcodes.zip
)。
<?php $plugins = array( array( 'name' => 'BuddyPress', 'slug' => 'buddypress', 'required' => false, // this plugin is recommended ) ); ?>
<?php $plugins = array( array( 'name' => 'My Awesome Plugin', 'slug' => 'my-awesome-plugin', 'source' => 'http://files.my-website.com/my-awesome-plugin.zip', 'required' => true, // this plugin is required 'external_url' => 'http://my-website.com/introducing-my-awesome-plugin', // page of my plugin 'force_deactivation' => true, // deactivate this plugin when the user switches to another theme ) ); ?>
<?php $plugins = array( array( 'name' => 'My Super Sleek Slider', 'slug' => 'my-super-sleek-slider', 'source' => get_stylesheet_directory() . '/lib/plugins/my-super-sleek-slider.zip', // The "internal" source of the plugin. 'required' => true, // this plugin is required 'version' => '1.2', // the user must use version 1.2 (or higher) of this plugin 'force_activation' => false, // this plugin is going to stay activated unless the user switches to another theme ) ); ?>
注意到示例代码末尾带有两个参数的 tgmpa()
函数了吗?第二个参数是 $config
变量,它也恰好是一个数组,就像 $plugins
参数一样。顾名思义,您可以使用此数组配置 TGM 插件激活库。它还有自己的一组选项需要设置:
id
(字符串) - 您在主题中实现的 TGM 插件激活库的唯一 ID。这实际上非常重要:如果另一个插件也使用 TGM 插件激活,则不同的 ID 可以防止冲突。default_path
(string) - 主题内插件的默认绝对路径。设置此选项后,您可以使用 ZIP 文件的名称作为插件的 source
参数。menu
(字符串) - 插件安装页面的菜单项。has_notices
(boolean) - 如果设置为 true
,则会显示必需/推荐插件的管理员通知。dismissible
(boolean) - 如果设置为 true
,用户可以“忽略”通知。dismiss_msg
(string) - 如果 dismissable
选项设置为 false,则此消息将显示在管理通知上方。is_automatic
(boolean) - 如果设置为 true
,插件将在用户同意安装后激活。message
(string) - 在插件表之前显示的可选 HTML。strings
(array) - 另一个 array
包含要显示的消息。您也可以将它们设置为可翻译字符串。查看 example.php
文件以查看消息字符串的完整列表。<?php $config = array( 'id' => 'mytheme-tgmpa', // your unique TGMPA ID 'default_path' => get_stylesheet_directory() . '/lib/plugins/', // default absolute path 'menu' => 'mytheme-install-required-plugins', // menu slug 'has_notices' => true, // Show admin notices 'dismissable' => false, // the notices are NOT dismissable 'dismiss_msg' => 'I really, really need you to install these plugins, okay?', // this message will be output at top of nag 'is_automatic' => true, // automatically activate plugins after installation 'message' => '<!--Hey there.-->', // message to output right before the plugins table 'strings' => array(); // The array of message strings that TGM Plugin Activation uses ); ?>
正如您所看到的,通过 WordPress 主题提供功能并非不可能 - 您只需考虑用户从您的主题切换到另一个主题时的情况。 TGM 插件激活库提供了一种非常聪明的按书本操作的方法。
您觉得这个工具怎么样?您曾经使用过它,或者您打算将来使用它吗?请在下面发表评论,告诉我们您的想法。如果您喜欢这篇文章,请不要忘记与您的朋友分享!
Atas ialah kandungan terperinci Manfaatkan kuasa pustaka pengaktifan pemalam TGM dalam tema anda. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!