如何在wordpress中启用全文时删除更多内容?

时间:2011-12-07 16:51:33

标签: wordpress wordpress-theming

代码看起来像这样

function new_excerpt_length($length) {
    return 100;
}
add_filter('excerpt_length', 'new_excerpt_length');

在wp-admin>设置中有一个选项>阅读>对于Feed中的每篇文章,都会显示 如果将其设置为全文 excerpt()必须返回全长文章而不是指定的长度。

怎么做?

1 个答案:

答案 0 :(得分:1)

好问题!答案很简单:编写自己的函数!

在你喜欢的编辑器中打开functions.php并在键盘上混搭随机按钮,直到你得到这样的结果:

function my_awesome_excerpt ($post_id = false, $full = false, $length = 22) {
    if (!$post_id) global $post;
    else $post = get_post($post_id);

    $text = $post->post_content;

    if ($full) return $text;

    else {
        $text_array = explode(' ', $text);
        $return_string = array();
        for ($i = 0; $i <= $length; $i++)
            array_push($return_string, $text_array[$i]);

        $new_awesome_string = '<p>';
        $new_awesome_string .= implode(' ', $return_string);
        $new_awesome_string .= '</p><p class="readmore">';
        $new_awesome_string .= '<a href="' . get_permalink($post_id) . '">';
        $new_awesome_string .= 'Read More' . '</a></p>';

        return $new_awesome_string;
    }
}

现在,你已准备好应对这个很酷的部分。一旦你进入循环,就可以写出这样的魔法:

echo my_awesome_excerpt();

它会自动吐出一段摘录。它使用全局post变量和一切!你甚至可以在循环之外使用它:

echo my_awesome_excerpt($cpt->ID, 22);

并设置你自己的特殊长度!

或许你只是在心里知道这不值得,你只想展示整件事。怎么样?

在循环中,你将不得不给它一个帖子ID,抱歉。

echo my_awesome_script($post->ID, false);

我希望这会有所帮助。祝你有美好的一天!