如何覆盖wordpress中的get_bloginfo函数


How to override a get_bloginfo function in wordpress

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);

我用了上面的代码,它不起作用。。

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

get_bloginfo('name', 'display');

因此,如果你想将其用于某些插件,它将没有多大用处。

可使用的过滤器:

  • bloginfo_url(这个用于所有返回url的选项(
  • 博客信息

用法:

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';
}

好吧,我现在明白了,更好的方法是编辑你的header.php并查找bloginfo("description"(,然后用custom_get_bloginfo((更改它,然后添加你可以使用它到你的函数中。php

function custom_get_bloginfo(){
switch( $show ) {
case 'description':
$output = "my description";
break;
default:
$output = get_option('blogname');
break; 
}
return $output;
}