自定义帖子摘录不能正常工作

时间:2018-01-04 作者:ismaelw

What I want

我需要显示不同类型的摘录。一些项目需要有一种类型的“阅读更多”按钮,其他项目需要有另一种类型的按钮。摘录的长度也是如此。

The problem I have

目前,两种类型的摘录都会显示完整的摘录,而“阅读更多”按钮完全缺失。

The code

自定义摘录长度函数:

function custom_excerpt_long($length) {
   return 100;
}

function custom_excerpt_short($length) {
   return 30;
}
自定义摘录“阅读更多”按钮功能:

function custom_continuereading($more) {
   global $post;
   return \'... &mdash; <a class="view-article" href="\' . get_permalink($post->ID) . \'">Continue reading</a>\';
}
function custom_readmore($more) {
   global $post;
   return \'... &mdash; <a class="view-article" href="\' . get_permalink($post->ID) . \'">Read more</a>\';
}
自定义摘录回调函数:

function custom_excerpt($length_callback = \'\', $more_callback = \'\') {
   global $post;

   if (function_exists($length_callback)) {
      add_filter(\'excerpt_length\', $length_callback);
   }
   if (function_exists($more_callback)) {
      add_filter(\'excerpt_more\', $more_callback);
   }

   $output = get_the_excerpt();
   $output = apply_filters(\'wptexturize\', $output);
   $output = apply_filters(\'convert_chars\', $output);
   $output = \'<p>\' . $output . \'</p>\';
   return $output;
}
打印摘录的代码:

<?php echo custom_excerpt(\'custom_excerpt_long\', \'custom_continuereading\'); ?>
<?php echo custom_excerpt(\'custom_excerpt_short\', \'custom_readmore\'); ?>
我做错了什么?谢谢大家的帮助!

更新-工作解决方案,回答是D.Dani,我选择了另一个解决方案。这是最后一个功能:

function custom_excerpt($length = \'\') {
   global $post;

   $output = get_the_excerpt();
   $output = apply_filters(\'wptexturize\', $output);
   $output = apply_filters(\'convert_chars\', $output);
   $output = substr($output, 0, $length);
   $output = \'<p>\' . $output . \'... <br><br> <a class="view-article" href="\' . get_permalink($post->ID) . \'">Continue reading</a></p>\';
   return $output;
}
我可以这样调用函数:

<?php echo custom_excerpt(100); ?>

1 个回复
最合适的回答,由SO网友:D. Dan 整理而成

为什么不使用substr?

返回简短摘录的函数示例:

function shortened_excerpt() {

    echo substr(get_the_excerpt(), 0, 30) . "...";

}

结束

相关推荐

带有Bootstrap的WordPress上的网格发布页面,the_excerpt();问题

我试图在WordPress上创建一个包含我所有帖子的网格页面。直到我添加the_excerpt(); 我的职位。电网变得一团糟。行不再正确。这就是我没有的the_excerpt();:这就是the_excerpt();:这里是我的页面代码。php:<?php /* Template Name: Blog-3 */ ?> <?php get_header(); ?> <div> <div clas