WordPress功能函数activate_plugin ()

WordPress功能函数activate_plugin ()

WordPress功能函数activate_plugin (),在“沙箱”中尝试激活插件,成功后重新定向。

用法:

activate_plugin( string $plugin, string $redirect = ”, bool $network_wide = false, bool $silent = false )

描述:

已经激活的插件将不再尝试被激活。

它的工作方式是在尝试包含插件文件之前将重定向设置为错误,如果插件失败,那么重定向将不会被成功消息覆盖,此外,选项不会被更新,激活钩子不会被调用插件错误。

应该注意的是,下面的代码无论如何都不能真正防止文件中的错误,代码不应该用在其他地方来复制使用重定向工作的“沙箱”,{@source 13 1}

如果发现了任何错误或输出了文本,那么将捕获错误,以确保成功重定向将更新错误重定向。

参数:

$plugin

(string) (必需) 相对于插件目录的插件文件路径。

$redirect

(string) (可选) 重定向到的URL。

默认值:“

$network_wide

(bool) (可选) 是否为网络中的所有站点启用插件,或仅为当前站点启用插件,多点。

默认值:假

$silent

(bool)(可选)是否阻止调用激活钩子。

默认值:假

返回

(null|WP_Error)成功返回null,无效文件返回WP_Error。

更多的信息:

由于多种原因,插件将无法激活以下通用响应:解析头信息的问题,’ plugin ‘缓存的问题(见WordPress对象缓存),或者权限错误。

The plugin does not have a valid header.

插件缓存的问题,是当插件文件被添加或修改时引起的,在所有插件都被初始化之后,这可以通过重新加载页面、将activate_plugin()作为一个单独的AJAX请求发送来解决,或者在必要时手动更新缓存来解决,在下面的例子:

$cache_plugins = wp_cache_get( ‘plugins’, ‘plugins’ );

if ( !empty( $cache_plugins ) ) {

$new_plugin = array(

‘Name’ => $plugin_name,

‘PluginURI’ => $plugin_uri,

‘Version’ => $plugin_version,

‘Description’ => $plugin_description,

‘Author’ => $author_name,

‘AuthorURI’ => $author_uri,

‘TextDomain’ => ”,

‘DomainPath’ => ”,

来源:

文件: wp-admin/includes/plugin.php

function activate_plugin( $plugin, $redirect = ”, $network_wide = false, $silent = false ) {

$plugin = plugin_basename( trim( $plugin ) );

if ( is_multisite() && ( $network_wide || is_network_only_plugin( $plugin ) ) ) {

$network_wide = true;

$current = get_site_option( ‘active_sitewide_plugins’, array() );

$_GET[‘networkwide’] = 1; // Back compat for plugins looking for this value.

} else {

$current = get_option( ‘active_plugins’, array() );

}

更新日志:

WordPress功能函数activate_plugin () (https://www.wpzt.net/) WordPress开发教程 第1张

用户贡献的笔记

(由Codex – 5年前贡献)

基本的例子

尝试激活插件,失败返回WP_Error

$result = activate_plugin( ‘plugin-dir/plugin-file.php’ );

if ( is_wp_error( $result ) ) {

// Process Error

}

(由ttodua贡献- 4个月前)

朋友们,如果你想使用重定向(在插件激活时),你应该只在你的插件没有通过“批量激活”被“激活”的情况下使用重定向!

add_action( ‘activated_plugin’, ‘wpdocs_my_redirection’ );

function wpdocs_my_redirection( $plugin ) {

$table = new WP_Plugins_List_Table;

if ( plugin_basename( __FILE__ ) === $plugin && ‘activated-selected’ !== $table->current_action() ) {

wp_redirect( … );

exit();

}

}

本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。如有需求,建议购买正版!如果源码侵犯了您的利益请留言告知!!
优质资源共享平台-811轩轩资源 » WordPress功能函数activate_plugin ()

发表评论