插件卸载功能不起作用

时间:2012-12-30 作者:Emerson Maningo

我正在更新我的插件,以便与Wordpress 3.5版兼容。以下是我的重要插件文件:

按标题对\\u SearchResult\\u排序。php:

<?php
if(!class_exists(\'Class_Sortsearchresults\'))
{
require_once(\'Class_Sortsearchresults.php\');
}
if(!isset($Class_Sortsearchresults))
{
$Class_Sortsearchresults = new Class_Sortsearchresults;
}
?>
Class\\u排序搜索结果。php:

<?php
class Class_Sortsearchresults
{
function __construct()
{

    //Register activation hook
       register_activation_hook(__FILE__,array(&$this,\'sortresult_install\'));

    //Add menu hook
    add_action( \'admin_menu\', array(&$this,\'sort_searchresults_menu\'));

    //Update function hook
    add_action(\'plugins_loaded\', array(&$this,\'sortsearchtitle_update_db_check\'));

    //Register deactivation hook
    register_deactivation_hook(__FILE__, array(&$this,\'sortresult_uninstall\'));

    //Run the search function
    add_action(\'pre_get_posts\',array(&$this,\'sort_searchresult_by_title\'));

}

function sortresult_uninstall() 
{

    //This function is not working or executed

    global $wpdb;       
    $sortsearchtitle_db_version = \'1.0\';
    $table = $wpdb->prefix."sortsearchresult";
    $wpdb->query("DROP TABLE IF EXISTS $table");
    delete_option(\'sortsearchtitle_db_version\');
}

function sortresult_install()
{
    //install function
}   

function sort_searchresults_menu()
{

    //function for creating menu

}

function sortsearchtitle_update_db_check()
{

    //function for update

    }

function settings_page()
{
    //function for settings form
}

function sortingguide($opt_val)
{

    //sorting options

}

function sort_searchresult_by_title($k)
{
    //function to run customized search

}

}
?>
看来除了卸载功能外,我一切都很好。有什么线索说明这不起作用吗?谢谢

1 个回复
最合适的回答,由SO网友:RRikesh 整理而成

register_deactivation_hook() 当插件停用时启动。对于插件卸载,有register_uninstall_hook().

Wordpress插件也可以有一个名为uninstall.php 每当卸载插件时都会运行。为了防止uninstall.php 文件直接触发,常量的状态称为WP_UNINSTALL_PLUGIN 应在启动卸载代码之前进行检查。

你的uninstall.php 可能是:

<?php
//if uninstall not called from WordPress exit
if ( !defined( \'WP_UNINSTALL_PLUGIN\' ) )
    exit ();

global $wpdb;       
$sortsearchtitle_db_version = \'1.0\';
$table = $wpdb->prefix."sortsearchresult";
$wpdb->query("DROP TABLE IF EXISTS $table");
delete_option(\'sortsearchtitle_db_version\');

结束

相关推荐

hooks & filters and variables

我是updating the codex page example for action hooks, 在游戏中完成一些可重用的功能(最初是针对这里的一些Q@WA)。但后来我遇到了一个以前没有意识到的问题:在挂接到一个函数以修改变量的输出后,我再也无法决定是要回显输出还是只返回它。The Problem: 我可以修改传递给do_action 用回调函数钩住。使用变量修改/添加的所有内容仅在回调函数中可用,但在do_action 在原始函数内部调用。很高兴:我将其修改为一个工作示例,因此您可以将其复制/粘贴