Пользовательские заголовки сообщений WordPress

#php #wordpress

#php #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;

} );
  

Что я делаю, когда он заменяет все заголовки этими добавленными полями, а не только заголовок сообщения

Ответ №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 файл вашей активной дочерней темы (или темы) или также в любом файле плагина.

Пожалуйста, обратите внимание: этот код не тестировался, но он должен работать.


Ссылка:

Комментарии:

1. Это не сработало, так как пункты меню в моей теме больше не отображались.

2. @BrettCanfield: я обновил свой код, проверьте это, он будет работать.

Ответ №2:

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

Комментарии:

1. Похоже, я пропустил проверку по идентификатору сообщения!