如何在wordpress中覆盖get_bloginfo函数

时间:2013-02-07 06:42:58

标签: php wordpress function override

function custom_get_bloginfo( $show = '', $filter = 'raw' ) {

    switch( $show ) {
            case 'description':
            $output = "my description";
            break;

            default:
            $output = get_option('blogname');
            break; 
    }

        return $output;

}

add_filter('get_bloginfo', 'custom_get_bloginfo', 1, 2);

我使用上面的代码它不起作用..

2 个答案:

答案 0 :(得分:7)

get_bloginfo函数支持两个过滤器,但仅当第二个参数“filter”设置为“display”即

get_bloginfo('name', 'display');

因此,如果您希望将其用于某些插件,那么它将没有多大用处。

可以使用的过滤器:

  • bloginfo_url(此选项适用于所有返回网址的选项)
  • 代码bloginfo

用法:

add_filter('bloginfo_url', 'custom_get_bloginfo', 10, 2);
add_filter('bloginfo', 'custom_get_bloginfo', 10, 2);

function custom_get_bloginfo($output, $show) {
    switch( $show ) {
        case 'description':
            $output = 'my custom description';
            break;
        case 'name':
            $output = 'custom name';
            break;
    }

    return $output;
}

<强>更新 如果您只想更换网站描述,可以执行以下操作:

add_filter('option_blogdescription', 'custom_option_description', 10, 1);
function custom_option_description($value) {
    return 'custom description';
}

答案 1 :(得分:0)

好的,我现在明白了,更好的方法是编辑你的header.php并查找bloginfo('description')然后用custom_get_bloginfo()更改它然后添加你可以使用它到你的function.php < / p>

function custom_get_bloginfo(){
switch( $show ) {
case 'description':
$output = "my description";
break;

default:
$output = get_option('blogname');
break; 
}
return $output;
}