Wordpress php摘录不起作用 - 简单

时间:2013-12-06 23:24:07

标签: php wordpress

这里的第一篇文章,如果没有直接的问题,我无法找到答案。我认为这对于理解他们正在看什么的人来说很容易回答。

我的主题中有一段摘录,但它不起作用。通过这个我的意思是它显示了摘录,但它根本没有削减字长,它只是显示了整个事情。

在函数中创建摘录的代码:

Custom excerpt and more link


function ts_excerpt_more($more) {
    global $post;
    $ts_more = '<a href="'. get_permalink($post->ID) . '" class="btn">'. apply_filters('ts_more_text', __('Mas info', TS_DOMAIN)) .'</a>';
    return apply_filters('ts_more', $ts_more);
}

add_filter('excerpt_more', 'ts_excerpt_more');

function ts_the_excerpt($length = 55, $post_id = '', $more = ''){

    global $post, $more;

    if(!empty($post_id)) {
        $post = get_post($post_id);
        $more = false;
    }

    // respect excerpt_length filter
    $excerpt_length = apply_filters('excerpt_length', $length);

    $ts_more = ' <a href="'. get_permalink($post->ID) . '">['. apply_filters('ts_more_text', __('More info', TS_DOMAIN)) .'&hellip;]</a>';

    // when excerpt comes with custom more, set it
    // else use the default excerpt more
    $excerpt_more = (!empty($more)) ? $more : apply_filters('excerpt_more', $ts_more);

    if (strpos($post->post_content, '<!--more-->')) {

        $output = get_the_content('', true);

    } else {

        if(!empty($post->post_excerpt)) {   

            $output = $post->post_excerpt;

        } else {

            $content = strip_tags($post->post_content); 
            preg_match('/^\s*+(?:\S++\s*+){1,' . $excerpt_length . '}/', $content, $matches);     
            $output = $matches[0];

        }

    }

    $output = strip_shortcodes($output);
    $output = wpautop($output).wpautop($excerpt_more);

    echo $output;
}

以下是页面中的摘录:

<?php ts_the_excerpt(25, get_the_ID()); ?>

字面上不知道,我只能假设25是一个字数限制,但这不起作用,任何帮助将不胜感激。

罗布

1 个答案:

答案 0 :(得分:0)

您可以通过更少的代码和更多的控制来实现这一目标。

尝试将它放在你的functions.php文件中

function limit_excerpt_length($string, $word_limit)
{
$words = explode(' ', $string);

return implode( ' ', array_slice($words, 0, $word_limit) );

}

将此信息放在您要限制摘录的主题文件中。 13是字数

    <?php echo limit_excerpt_length(get_the_excerpt(),  '13'); ?>