apply_filters()
应用一组已注册的add_filter()
) 回调。
应用筛选器时,请确保其名称不是reserved ones, the_title
看起来与其他过滤器有危险的“碰撞”。
您的筛选应用程序几乎正确,但不需要“modifyTitle”位。。。
// apply the filter
apply_filters( \'wpse31787_the_title\', $item->ID );
。。。相反,您必须为
wpse31787_the_title
初始化期间
function __construct() {
add_filter( \'wpse31787_the_title\', array($this, \'modifyTitle\') );
}
你的函数定义是
function modifyTitle( $item_id ) {
// ...your code goes here
}
如果要传递多个参数,则必须扩展过滤器添加,如下所示:
// 2 arguments are expected
add_filter( \'wpse31787_the_title\', array($this, \'modifyTitle\'), null, 2 );
所以,如果我把所有的位放在一起,我会有这样的东西:
class New_Walker_Nav_Menu extends Walker_Nav_Menu {
function __construct() {
add_filter( \'wpse31787_the_title\', array($this, \'modifyTitle\'), null, 2 );
}
function start_el( &$output, $item, $depth, $args ) {
$output .= apply_filters( \'wpse31787_the_title\', $item->title );
}
function modifyTitle( $title ){
return $title . \' << \';
}
}