0

有了这个与 WordPress 相关的 PHP-OOP Answer,我找到了我正在寻找的解决方案。但是使用相同的功能my_excerpt();,我想在标签<a>内传递另一个锚标签 ( ) <p>

现在,调用my_excerpt()正在使用带有段落标记 ( <p>here comes the excerpt</p>) 的数据库文本。如果我添加我的锚标记,如下所示:

// Echoes out the excerpt
    public static function output() {
        the_excerpt(); ?>
        <a class="read-more" href="<?php the_permalink(); ?>" title="<?php the_title(); ?>" rel="bookmark"><?php _e( 'Read More &raquo;', 'my-theme'); ?></a>
    <?php
    }

它在除文本的底部显示“阅读更多”。检查元素显示如下:

<p>here comes the excerpt.</p>
<a href="post-link">Read More</a>

如何更改函数或类,以便在段落中拥有“阅读更多”链接,例如:

<p>here comes the excerpt.<a href="post-link">Read More</a></p>

此外

此外,我还尝试[...]my_excerpt();. 所以我尝试了以下方法:

function change_excerpt($content) {
    $content = str_replace( '[...]','>',$content ); // remove [...], replace with ...
    $content = strip_tags( $content ); // remove HTML
    return $content;
}
add_filter('my_excerpt','change_excerpt');

我没有对视图做任何事情。但是,如果我将其更改为:

add_filter('the_excerpt','change_excerpt');

然后不知道,我得到了以前想要的锚标记[段落内],因为过滤器完全删除了段落标记。

here comes the excerpt.<a href="post-link">Read More</a>

但它对部分没有任何作用[...]。:(

所以,我提供的问题是:
如何将锚标签放在段落标签内,或者删除段落标签,然后从函数中删除[...]部分?my_excerpt()

4

1 回答 1

1

试试这个片段

包含在你的functions.php中

function kc_excerpt( $length_callback = '', $more_callback = '' ) {

    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>';
    echo $output;
}

function kc_excerpt_more( $more ) {
    return '<a class="read-more" href="'. get_permalink() .'" title="'. get_the_title() .'"      rel="bookmark">Read More</a>';
}

function kc_excerpt_more_2($more) {
    return '...';
}

function kc_exdefault($length) {
    return 10;
}

function kc_ex100($length) {
    return 100;
}

并从您的模板文件中调用此函数

<?php kc_excerpt('kc_exdefault', 'kc_excerpt_more'); ?>

或者

<?php kc_excerpt('kc_ex100', 'kc_excerpt_more_2'); ?>
于 2013-10-27T10:51:20.773 回答