如何修改模板标签功能?

时间:2014-07-08 作者:manojadams

默认情况下,get\\u user\\u meta返回数组、单个值或false。我想以某种方式更改返回值。如何做到这一点?

我只想在类内修改模板标记get\\u user\\u meta的返回类型。如何做到这一点?我正在尝试:-

class modifyUserMeta {
    function modifyUserMeta(){
        add_filter(\'get_user_meta\',$this->modifyMeta);
    }
    function modifyMeta(){
    //how can i modify the return type of get_user_meta?
    }
}

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

没有get_user_meta 滤器尽管WP通常具有与函数名相同的过滤器,但这并不是规则。

但是,在更通用的get_metadata() 功能:

$check = apply_filters( "get_{$meta_type}_metadata", null, $object_id, $meta_key, $single );

if ( null !== $check ) {
    if ( $single && is_array( $check ) )
        return $check[0];
    else
        return $check;
}
此外,您的PHP在回调方面也是一团糟。总之:

class modifyUserMeta {

    function modifyUserMeta(){

        add_filter(\'get_user_metadata\', array($this, modifyMeta), 10, 4 );
    }

    function modifyMeta( $null, $object_id, $meta_key, $single ){

        // check ID, key, and format then return accordingly
    }
}

结束

相关推荐