На моей странице single.php Я пытаюсь создать функцию, чтобы дать мне пользовательскую длину отрывки определенной записи по идентификатору.Мой пользовательский get_the_excerpt() не может получить отрывок из ID
Ниже приведены мои две функции, которыми я бегу.
/* Custom get_the_excerpt to allow getting Post excerpt by ID */
function custom_get_the_excerpt($post_id) {
global $post;
$save_post = $post;
$post = get_post($post_id);
$output = get_the_excerpt($post);
$post = $save_post;
return $output;
}
/* Change Excerpt length */
function excerpt($num, $post_id = '') {
$limit = $num+1;
$excerpt = explode(' ', custom_get_the_excerpt($post_id), $limit);
array_pop($excerpt);
$excerpt = implode(" ",$excerpt)."…";
echo $excerpt;
}
Что я использую для вызова функции.
<?php $previous = get_previous_post();
echo excerpt('30', $previous -> ID); ?>
Проблема Я бегу в $ пост дает мне предыдущую информацию пост, однако, когда я прохожу, что в get_the_excerpt возвращает текущую запись отрывка, а не предыдущий пост отрывка.
EDIT
Измененная функция это после того, как несколько человек сказали мне, что я могу просто передать $ post_id в get_the_excerpt()
/* Change Excerpt length */
function excerpt($num, $post_id = '') {
$limit = $num+1;
$excerpt = explode(' ', get_the_excerpt($post_id), $limit);
array_pop($excerpt);
$excerpt = implode(" ",$excerpt)."…";
echo $excerpt;
}
Все еще без изменений.
Опечатка, что у вас есть пробелы вокруг «->» в «echo excerpt ('30», $ previous -> ID); 'Я уверен, что это не сработает - и я подозреваю, что в вашем пользовательском вызове $ post_id не определен, поэтому он использует текущую $ post. Кроме того, я уверен, что вам не нужно беспокоиться о 'get_post' - просто передайте post_id, чтобы get_the_excerpt работал. – MacPrawn
Без изменений без пробелов вокруг "->" Также вы правы, я могу просто передать $ post_id, но это тоже не изменит проблему. :( –