2016-10-03 109 views
0

我正在寻找一种方法来更改WordPress的屏幕上显示帖子标题的方式,该方式仅适用于帖子标题。WordPress自定义帖子标题

我想在帖子标题中显示姓名,性别,年龄。我显示的名称是当前的帖子标题,我正在尝试将性别和年龄添加到此目的中,仅用于显示目的。

我已经使用了当前的代码,但它适用于我的主题中使用该贴图的所有内容,并将这些字段添加到菜单项中。 我没有修改任何PHP文件的主题范围内,并且想避免这一点,通过功能

这里做到这一点是我的代码:

add_filter('the_title', function($title) { 
$gender = get_field('gender'); 
$dob = get_field('date_of_birth'); 
$birthday = new DateTime($dob); 
$interval = $birthday->diff(new DateTime); 
if ('babysitters' == get_post_type()) { 

$temp_title = $title; 

$bbstitle = $temp_title .', ' .$gender .', ' .$interval->y; 
return $bbstitle; 
} 
return $title; 

}); 

我在做什么它将取代所有这些附加字段标题,而不仅仅是后头部

回答

0
<?php 
add_filter('the_title', 'new_title', 10, 2); 
function new_title($title, $id) { 
    if('babysitters' == get_post_type($id)){ 
     $gender = get_field('gender'); 
     $dob = get_field('date_of_birth'); 
     $birthday = new DateTime($dob); 
     $interval = $birthday->diff(new DateTime); 
     $newtitle = $title .', ' .$gender .', ' .$interval->y; 

    } 
    else{ 

     $newtitle = $title; 
    } 
    return $newtitle; 
} 
?> 
+0

这一个工作,看起来像我错过了检查的帖子ID! –

1

修订

function text_domain_custom_title($title) { 
    global $post; 

    if ($post->post_type == 'babysitters') { 
     $gender = get_field('gender', $post->ID); 
     $dob = get_field('date_of_birth', $post->ID); 
     $birthday = new DateTime($dob); 
     $interval = $birthday->diff(new DateTime); 

     $bbstitle = $title . ', ' . $gender . ', ' . $interval->y; 
     return $bbstitle; 
    } else { 
     return $title; 
    } 
} 

add_filter('the_title', 'text_domain_custom_title', 10, 2); 

这段代码在你的活动子主题(或主题)的function.php文件中,或者也在任何插件文件中。

请注意:此代码未经测试,但它应该工作。


参考:

+0

这一个没有工作,在我的主题菜单项将不再呈现。 –

+0

@BrettCanfield:我已经更新了我的代码,检查这个,它会工作。 –