2013-12-19 14 views
0

Я работаю с темой, которая использует следующую функцию, чтобы установить длину поста выдержки на всех страницах:Изменения Отрывок Длина для конкретной страницы ID

//excerpt length 

if (!function_exists('custom_excerpt_length')): 
    function custom_excerpt_length($length) { 
     return 90; 
    } 

add_filter('excerpt_length', 'custom_excerpt_length', 999); 

function new_excerpt_more($more) { 
    return '...'; 
} 

add_filter('excerpt_more', 'new_excerpt_more'); 

endif; 

Я добавил новую функцию:

add_filter('get_the_excerpt', 'so20668477_get_the_excerpt', 10, 1); 
function so20668477_get_the_excerpt($excerpt) 
{ 
if(is_page(39370)) 
    $excerpt = apply_filters('the_content', get_the_content()); 

return $excerpt; 
} 

Но он не работает, по-прежнему показывает выдержку после выдержки на странице 39370. Мне нужно показывать только полные записи только на странице ID = 39370. Не уверен, как добавить условие. Буду признателен за любую оказанную помощь.

ответ

0

Прежде всего вам следует настоятельно рекомендовать всегда использовать фигурные скобки даже в тех случаях, когда они являются технически необязательными.

Не делать:

if (condition) 
    return false; 

Вместо делать:

if (condition) { 
    return false; 
} 

О ваш вопрос:

Эта функция apply_filters('the_content', get_the_content()); Получить эхо контента, а не содержимого, поэтому ваше условие верное. Попробуйте этот код:

if(is_page(39370)){ 
    $content = get_the_content(); 
    $content = apply_filters('the_content', $content); 
    $excerpt = explode("[newpage]", $content); 
} 

return $excerpt; 

Или есть другой Подход:

if(is_page(39370)){ 
    ob_start(); 
    the_content(); 
    $content = ob_get_clean(); 
} 

return $excerpt; 

Я надеюсь, что это решение поможет вам.

Смежные вопросы