需要通过php文件激活wordpress站点的插件
我打算在我的wordpress网站上更新电子商务插件(Shopp),它要求我停用它。一旦我这样做了,我就失去了整个网站。 我试图通过php文件激活插件,但不确定我在做什么,希望得到一些帮助。 有人知道我如何通过php文件激活我网站上的Shopp插件(或任何插件)吗需要通过php文件激活wordpress站点的插件,php,wordpress,function,plugins,Php,Wordpress,Function,Plugins,我打算在我的wordpress网站上更新电子商务插件(Shopp),它要求我停用它。一旦我这样做了,我就失去了整个网站。 我试图通过php文件激活插件,但不确定我在做什么,希望得到一些帮助。 有人知道我如何通过php文件激活我网站上的Shopp插件(或任何插件)吗 这是我用来获取字符串的代码: $unserialized = unserialize('a:14:{i:0;s:19:"akismet/akismet.php";i:1;s:37:"breadcrumbs-plus/brea
这是我用来获取字符串的代码:
$unserialized = unserialize('a:14:{i:0;s:19:"akismet/akismet.php";i:1;s:37:"breadcrumbs-plus/breadcrumbs-plus.php";i:2;s:35:"googleanalytics/googleanalytics.php";i:3;s:45:"grunion-contact-form/grunion-contact-form.php";i:4;s:43:"image-caption-links/image-caption-links.php";i:5;s:29:"image-widget/image-widget.php";i:6;s:13:"rate/rate.php";i:7;s:33:"restore-jquery/restore-jquery.php";i:8;s:41:"shopp-cache-helper/shopp-cache-helper.php";i:9;s:47:"shopp-default-breadcrumb-extender-sdbe/sdbe.php";i:10;s:33:"shopp-improved/shopp-improved.php";i:11;s:19:"shuffle/shuffle.php";i:12;s:19:"vslider/vslider.php";i:13;s:41:"wordpress-importer/wordpress-importer.php";}');
array_push($unserialized, 'shopp/shopp.php');
$serialized = serialize($unserialize);
echo $serialized;
活动插件不存储在PHP文件中。它存储在数据库中。打开数据库中的
wp\u选项
表。查找选项\u name
字段值为活动\u plugins
的行。在此行中,查找选项的值\u value
。您将看到一个包含活动插件信息的序列化字符串
现在,直接编辑字符串可能有点混乱,特别是如果您不熟悉序列化字符串的格式。因此,我建议您复制字符串并在其上使用PHPunserialize()
函数,然后返回一个数组。之后,使用array_push()
添加另一个元素,其中的值是插件文件的路径(例如,“akismet/akismet.php”,在您的示例中可能是“shopp/shopp.php”)。添加另一个元素后,使用serialize()
复制返回的字符串并替换数据库中的旧序列化字符串
$unserialized = unserialize('...');
array_push($unserialized, 'shopp/shopp.php');
$serialized = serialize($unserialized);
echo $serialized; // Copy this output back into the database
活动插件不存储在PHP文件中。它存储在数据库中。打开数据库中的
wp\u选项
表。查找选项\u name
字段值为活动\u plugins
的行。在此行中,查找选项的值\u value
。您将看到一个包含活动插件信息的序列化字符串
现在,直接编辑字符串可能有点混乱,特别是如果您不熟悉序列化字符串的格式。因此,我建议您复制字符串并在其上使用PHPunserialize()
函数,然后返回一个数组。之后,使用array_push()
添加另一个元素,其中的值是插件文件的路径(例如,“akismet/akismet.php”,在您的示例中可能是“shopp/shopp.php”)。添加另一个元素后,使用serialize()
复制返回的字符串并替换数据库中的旧序列化字符串
$unserialized = unserialize('...');
array_push($unserialized, 'shopp/shopp.php');
$serialized = serialize($unserialized);
echo $serialized; // Copy this output back into the database
有关于如何以编程方式激活和停用插件的详细信息。以下是一个片段:
function toggle_plugin() {
// Full path to WordPress from the root
$wordpress_path = '/full/path/to/wordpress/';
// Absolute path to plugins dir
$plugin_path = $wordpress_path.'wp-content/plugins/';
// Absolute path to your specific plugin
$my_plugin = $plugin_path.'my_plugin/my_plugin.php';
// Check to see if plugin is already active
if(is_plugin_active($my_plugin)) {
// Deactivate plugin
// Note that deactivate_plugins() will also take an
// array of plugin paths as a parameter instead of
// just a single string.
deactivate_plugins($my_plugin);
}
else {
// Activate plugin
activate_plugin($my_plugin);
}
}
有关于如何以编程方式激活和停用插件的详细信息。以下是一个片段:
function toggle_plugin() {
// Full path to WordPress from the root
$wordpress_path = '/full/path/to/wordpress/';
// Absolute path to plugins dir
$plugin_path = $wordpress_path.'wp-content/plugins/';
// Absolute path to your specific plugin
$my_plugin = $plugin_path.'my_plugin/my_plugin.php';
// Check to see if plugin is already active
if(is_plugin_active($my_plugin)) {
// Deactivate plugin
// Note that deactivate_plugins() will also take an
// array of plugin paths as a parameter instead of
// just a single string.
deactivate_plugins($my_plugin);
}
else {
// Activate plugin
activate_plugin($my_plugin);
}
}
对于每个有一个行为怪异的插件的人
在停用、激活、安装和更新插件后被锁定时,重新访问站点的最简单方法是:
- 转到您的webhost adminpanel(Cpanel、DirectAdmin)
- 转到文件(文件管理器)
- 转到//wp content/并将“plugins”文件夹重命名为其他文件夹,例如“plugins\u off”
- 去你的WP管理员那里。您将再次访问,但没有可见的插件
- 返回您的webhost adminpanel并将“plugins\u off”重命名为“plugins”
- 转到您的webhost adminpanel(Cpanel、DirectAdmin)
- 转到文件(文件管理器)
- 转到//wp content/并将“plugins”文件夹重命名为其他文件夹,例如“plugins\u off”
- 去你的WP管理员那里。您将再次访问,但没有可见的插件
- 返回您的webhost adminpanel并将“plugins\u off”重命名为“plugins”
function MY_toggle_plugins(){
include_once(ABSPATH.'wp admin/includes/plugin.php');
$temp_files1=glob(WP_PLUGIN_DIR./*);
$activated=array();
$ready_active=array();
foreach($temp_files1作为$file1){
如果(is_dir($file1)){
$temp_files2=glob($file1./*');
foreach($temp_files2作为$file2){
如果(is_file($file2)和&stripos(file_get_contents($file2),'Plugin Name:')!==false){
$plugin_name_full=basename(dirname($file2))./'.basename($file2);
如果(插件是否处于活动状态($plugin\u name\u full)){
数组\u推送($ready\u active,$plugin\u name\u full);
//停用插件($plugin\u name\u full);
}
否则{
数组\u推送($activated,$plugin\u name\u full);
//激活插件($plugin\u name\u full);
}
}
}
}
}
echo“您已经激活了这些插件:
”。序列化($activated)。”
这些插件已经激活:
。序列化($ready_active);退出;
}
//执行
MY_toggle_plugins();
这是工作代码
(只需取消对“激活”行的注释):
function MY_toggle_plugins(){
include_once(ABSPATH.'wp admin/includes/plugin.php');
$temp_files1=glob(WP_PLUGIN_DIR./*);
$activated=array();
$ready_active=array();
foreach($temp_files1作为$file1){
如果(is_dir($file1)){
$temp_files2=glob($file1./*');
foreach($temp_files2作为$file2){
如果(is_file($file2)和&stripos(file_get_contents($file2),'Plugin Name:')!==false){
$n