如何从unctions.php更改页面标题

时间:2017-11-29 作者:Paul Cullen

我有一个ACF自定义字段,它取决于我需要更改页面标题的值,但是,我不能影响页面标题,似乎我的代码是在生成页面标题后运行的。

解释我的要求。这是一个房地产网站,其中一些列表是机密的,他们在管理中标记为机密,前端应该只向注销的用户显示少量数据。

以下是我尝试的最新代码:

add_filter(\'init\', \'my_custom_title\');
function my_custom_title( $title ){
    global $post;
    //var_dump($post);
    echo $post->ID;
    $hide_price = get_field("hide_price");
    echo get_field("beds",$post->ID);
    $view_hidden = get_field(\'view_hidden_listings\', \'user_\'. get_current_user_id() );
    if($view_hidden == 1) {
        $hide_price = 0;
    }
    if( $post->post_type == \'sales_listings\' && $hide_price == 1) {
        return "Confidential";
    }
    echo $view_hidden;
}
非常感谢您的帮助,我一直在请求ACF的支持,但他们无法提供帮助。

谢谢

2 个回复
SO网友:freejack

如果引用文章标题,则需要将函数挂接到\\u标题过滤器,如中所述codex.

add_filter(\'the_title\', \'my_custom_title\', 10, 2);
如果在页面中引用HTML元,则需要将函数挂钩到document\\u title\\u parts filter explainedhere.

add_filter(\'document_title_parts\', \'my_custom_title\', 10, 2);
这两个过滤器的工作方式不同,第一个过滤器将标题作为字符串传递,第二个过滤器则是包含标题的数组。因此,根据您需要的代码,您的代码需要进行相应的调整才能工作。

如果你能更好地解释你的需求,你就能给出更好的答案。

SO网友:Elyes At.

要更改标题,您需要使用the_title 过滤器,如果您想确定用户是否已登录或不只是使用is_user_logged_in() 作用

function my_custom_title( $title, $id = null ) {
    global $post;
    if( $post->post_type == \'sales_listings\' && !is_user_logged_in() ) {
        $title =  "Confidential";
    } 
    return $title;
}
add_filter( \'the_title\', \'my_custom_title\', 10, 2 );

结束

相关推荐

如何从unctions.php更改页面标题 - 小码农CODE - 行之有效找到问题解决它

如何从unctions.php更改页面标题

时间:2017-11-29 作者:Paul Cullen

我有一个ACF自定义字段,它取决于我需要更改页面标题的值,但是,我不能影响页面标题,似乎我的代码是在生成页面标题后运行的。

解释我的要求。这是一个房地产网站,其中一些列表是机密的,他们在管理中标记为机密,前端应该只向注销的用户显示少量数据。

以下是我尝试的最新代码:

add_filter(\'init\', \'my_custom_title\');
function my_custom_title( $title ){
    global $post;
    //var_dump($post);
    echo $post->ID;
    $hide_price = get_field("hide_price");
    echo get_field("beds",$post->ID);
    $view_hidden = get_field(\'view_hidden_listings\', \'user_\'. get_current_user_id() );
    if($view_hidden == 1) {
        $hide_price = 0;
    }
    if( $post->post_type == \'sales_listings\' && $hide_price == 1) {
        return "Confidential";
    }
    echo $view_hidden;
}
非常感谢您的帮助,我一直在请求ACF的支持,但他们无法提供帮助。

谢谢

2 个回复
SO网友:freejack

如果引用文章标题,则需要将函数挂接到\\u标题过滤器,如中所述codex.

add_filter(\'the_title\', \'my_custom_title\', 10, 2);
如果在页面中引用HTML元,则需要将函数挂钩到document\\u title\\u parts filter explainedhere.

add_filter(\'document_title_parts\', \'my_custom_title\', 10, 2);
这两个过滤器的工作方式不同,第一个过滤器将标题作为字符串传递,第二个过滤器则是包含标题的数组。因此,根据您需要的代码,您的代码需要进行相应的调整才能工作。

如果你能更好地解释你的需求,你就能给出更好的答案。

SO网友:Elyes At.

要更改标题,您需要使用the_title 过滤器,如果您想确定用户是否已登录或不只是使用is_user_logged_in() 作用

function my_custom_title( $title, $id = null ) {
    global $post;
    if( $post->post_type == \'sales_listings\' && !is_user_logged_in() ) {
        $title =  "Confidential";
    } 
    return $title;
}
add_filter( \'the_title\', \'my_custom_title\', 10, 2 );

相关推荐