从wordpress的摘录中删除3个点

时间:2014-04-13 13:50:43

标签: php wordpress

我有这个头版显示三个文本,但它都以“...”结尾,除了这个特定的地方之外的所有其他地方都可以。这三个文本的帖子类型是服务,为什么我修改了以下代码。

// The excerpt based on words
/* Original disabled by Kenn Nielsen
function my_string_limit_words($string, $word_limit)
{
  $words = explode(' ', $string, ($word_limit + 1));
  if(count($words) > $word_limit)
  array_pop($words);
  return implode(' ', $words).'...';
}
*/

// Created if statement to remove dots from services on frontpage 

if (post_type_exists('services') ) {
    function my_string_limit_words($string, $word_limit) {
        $words = explode(' ', $string, ($word_limit + 1));
        if(count($words) > $word_limit)
        array_pop($words);
        return implode(' ', $words).'';
    }
} else {
    function my_string_limit_words($string, $word_limit) {
        $words = explode(' ', $string, ($word_limit + 1));
        if(count($words) > $word_limit)
        array_pop($words);
        return implode(' ', $words).'...';
    }
}

不幸的是,这没有按预期工作。有什么我想念的吗? 我确信这可以用更短的代码完成,但我选择了快捷方式。

最佳, 肯恩

解决方法:

使用最简单的解决方案修复它,而无需更改theme-function.php以及更改摘录的方式,以便在给出wordcount时显示三个点。

在窗口小部件中,用于显示内容的代码是:

        <div class="post_content">
        <?php if ( $instance['excerpt'] ) : ?>
          <?php if($limittext=="" || $limittext==0){ ?>
              <?php if ( $instance['excerpt_as_link'] ) : ?>
                <a href="<?php the_permalink() ?>">
              <?php endif; ?>
            <?php the_excerpt(); ?>
              <?php if ( $instance['excerpt_as_link'] ) : ?>
                </a>
              <?php endif; ?>
          <?php }else{ ?>
              <?php if ( $instance['excerpt_as_link'] ) : ?>
                <a href="<?php the_permalink() ?>">
              <?php endif; ?>
            <?php $excerpt = get_the_excerpt(); echo my_string_limit_words($excerpt,$limittext);?>
              <?php if ( $instance['excerpt_as_link'] ) : ?>
                </a>
              <?php endif; ?>
          <?php } ?>
        <?php endif; ?>
        </div>

没有这个功能就是回声,所以

<?php $excerpt = get_the_excerpt(); echo my_string_limit_words($excerpt,$limittext);?>

将是

<?php $excerpt = get_the_excerpt(); echo $excerpt;?>

这解决了问题/请求。

5 个答案:

答案 0 :(得分:1)

假设您使用the_excerpt()来显示内容。

将以下函数添加到function.php文件中。

function change_excerpt( $more ) {
        if(post_type_exists('services')){
           return '';
        }
     return '...';
}
add_filter('excerpt_more', 'change_excerpt'); //Wordpress 2.8+

答案 1 :(得分:0)

为什么不使用自定义摘录。您只需要声明一次,但可以使用不同长度的多次。您只需使用the_excerpt();更改模板文件中的echo pietergoosen_custom_excerpts($limit);,其中$limit是单词的数量,例如echo pietergoosen_custom_excerpts(45);,以显示45个字。

这是实现该功能的功能

function pietergoosen_custom_excerpts($limit) {
    return wp_trim_words(get_the_excerpt(), $limit, '<a href="'. esc_url( get_permalink() ) . '">' . '&nbsp;&hellip;' . __( 'Read more &nbsp;&raquo;', 'pietergoosen' ) . '</a>');
}

如果你需要别的东西而不是

'<a href="'. esc_url( get_permalink() ) . '">' . '&nbsp;&hellip;' . __( 'Read more &nbsp;&raquo;', 'pietergoosen' ) . '</a>'

你可以改变它。如果您在最后一个单词后无需显示任何内容,则只需执行以下操作即可

function pietergoosen_custom_excerpts($limit) {
    return wp_trim_words(get_the_excerpt(), $limit, '');
}

答案 2 :(得分:0)

试试这个

中创建新功能

<强>的functions.php

function custom_excerpt() {
 $text=preg_replace( "/\\[&hellip;\\]/",'place here whatever you want to replace',get_the_excerpt());
echo '<p>'.$text.'</p>';
}

使用页面上的新功能。

答案 3 :(得分:0)

只需将此代码段添加到function.php文件中即可。

function quanda_new_excerpt_more( $more ) {
    return '';
}
add_filter('excerpt_more', 'quanda_new_excerpt_more');

答案 4 :(得分:0)

打开你的主题 function.php 并添加这一行

add_filter('excerpt_more', '__return_false');