需要通过php文件激活wordpress站点的插件

需要通过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

我打算在我的wordpress网站上更新电子商务插件(Shopp),它要求我停用它。一旦我这样做了,我就失去了整个网站。 我试图通过php文件激活插件,但不确定我在做什么,希望得到一些帮助。 有人知道我如何通过php文件激活我网站上的Shopp插件(或任何插件)吗


这是我用来获取字符串的代码:

    $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
。您将看到一个包含活动插件信息的序列化字符串

现在,直接编辑字符串可能有点混乱,特别是如果您不熟悉序列化字符串的格式。因此,我建议您复制字符串并在其上使用PHP
unserialize()
函数,然后返回一个数组。之后,使用
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
。您将看到一个包含活动插件信息的序列化字符串

现在,直接编辑字符串可能有点混乱,特别是如果您不熟悉序列化字符串的格式。因此,我建议您复制字符串并在其上使用PHP
unserialize()
函数,然后返回一个数组。之后,使用
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”
现在您的插件将再次在WP admin中列出,但所有插件都已停用。 从那里开始

不需要添加PHP代码。

适用于所有拥有怪异插件的人

在停用、激活、安装和更新插件后被锁定时,重新访问站点的最简单方法是:

  • 转到您的webhost adminpanel(Cpanel、DirectAdmin)
  • 转到文件(文件管理器)
  • 转到//wp content/并将“plugins”文件夹重命名为其他文件夹,例如“plugins\u off”

  • 去你的WP管理员那里。您将再次访问,但没有可见的插件

  • 返回您的webhost adminpanel并将“plugins\u off”重命名为“plugins”
现在您的插件将再次在WP admin中列出,但所有插件都已停用。 从那里开始

不需要添加PHP代码。

这里是工作代码 (只需取消对“激活”行的注释):

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