我正在尝试删除register\\u url挂钩上添加的父主题的过滤器,它似乎有一个我无法理解的类命名法。
通常,此挂钩的过滤器很容易添加,如下所示:
add_filter( \'register_url\', \'custom_register_url\' );
function custom_register_url( $register_url )
{
$register_url = "YOUR_PAGE_URL";
return $register_url;
}
但是,父主题已将其自己的筛选器添加到此挂钩,并且由于加载顺序,我的子主题无法覆盖该筛选器(此问题已讨论
here 并演示了
here 以及详细信息
here).
这个过程相对简单,但我所从事的父主题将这个过滤器和函数放在了面向对象编程中,这让我头疼。WordPressCodex 表示
如果过滤器是从类中添加的,例如通过插件添加的,则删除它将需要访问类变量。
global $my_class;
remove_filter( \'the_content\', array($my_class, \'class_filter_function\') );
但我无法找出访问此函数的正确名称。以下是父主题的片段:
class APP_Registration extends APP_Login_Base {
private static $_template;
private $error;
function get_action() {
return \'register\';
}
function __construct( $template ) {
self::$_template = $template;
parent::__construct( $template, __( \'Register\', APP_TD ) );
add_action( \'appthemes_after_registration\', \'wp_new_user_notification\', 10, 2 );
add_filter( \'register_url\', array( $this, \'_change_register_url\' ), 10, 1 );
}
function _change_register_url( $url ) {
return self::get_url( \'raw\' );
}
. . .
尝试删除仅列出函数(\\u change\\u register\\u url)的筛选器不起作用:
function custom_register_url( $register_url )
{
$register_url = "YOUR_PAGE_URL";
return $register_url;
}
add_filter( \'register_url\', \'custom_register_url\' );
function remove_parent_filters() {
remove_filter( \'register_url\', \'_change_register_url\' );
add_filter( \'register_url\', \'custom_register_url\' );
}
add_action( \'after_setup_theme\', \'remove_parent_filters\' );
因为我假设,我需要指出它所连接的函数的正确类名。
有人能帮我找出这行的正确删除过滤器语法吗?
remove_filter( \'register_url\', \'_change_register_url\' );