我正在使用以下函数在所有页面上设置帖子摘录长度的主题:
//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 :(得分:0)
首先,强烈建议您始终使用花括号,即使在技术上可选的情况下也是如此。
不要这样做:
if ( condition )
return false;
取而代之的是:
if ( condition ) {
return false;
}
关于您的问题:
此功能apply_filters( 'the_content', get_the_content() );
获取内容的 echo 而不是内容,因此您的条件是正确的。
试试这段代码:
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;
我希望这个解决方案可以帮到你。