#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. Похоже, я пропустил проверку по идентификатору сообщения!