Different 'read more' links

时间:2012-07-30 作者:George Grigorita

有没有一种简单的方法可以添加另一个“阅读更多”链接?我在一些帖子中使用标准的“继续阅读”链接,但我也希望在其他帖子中使用不同的文本,如“更多信息”。我可以使用the_excerpt?

稍后更新:这是两个标准的twentyelven函数,用于“阅读更多”或“继续阅读”链接。

function twentyeleven_continue_reading_link() {
    return \' <a href="\'. esc_url( get_permalink() ) . \'">\' . __( \'<span class="more">more &#43;</span>\', \'twentyeleven\' ) . \'</a>\';
}
function twentyeleven_auto_excerpt_more( $more ) {  
    return \' &hellip;\' . twentyeleven_continue_reading_link();
}
add_filter( \'excerpt_more\', \'twentyeleven_auto_excerpt_more\' );
基于amit代码,我想包括if / else 中的声明twentyeleven_auto_excerpt_more 功能,但我做错了什么,因为它不工作。

代码如下:

function twentyeleven_auto_excerpt_more( $more ) {
$read_more_link_2 = "View Image";
if ( in_category( \'events\' )) {
    return $read_more_link_2;
} else {    
    return \' &hellip;\' . twentyeleven_continue_reading_link();
}
add_filter( \'excerpt_more\', \'twentyeleven_auto_excerpt_more\' );
我认为PHP显然不是我的强项。

2 个回复
最合适的回答,由SO网友:amit 整理而成

使用条件更改readmore链接怎么样。

下面是一个示例代码,它根据帖子的类别返回不同的阅读更多文本。您应该阅读official codex page 了解wordpress中可以使用的其他条件标记的更多信息。

Usage - 将此代码放入主题functions.php 文件此代码将替换continue reading 具有View Image 如果post处于image 类别

<?php
        function wpse_60184_new_readmore_link( $more ) {
                $read_more_link_2 = "View Image";
                if ( in_category( \'image\' )) {
                        return $read_more_link_2;
                }
        }
        add_filter(\'excerpt_more\', \'wpse_60184_new_readmore_link\');
?>
更新#1将此代码放在主题的末尾functions.php

//this will create read morelink when the_excerpt() is used
function wpse_60184_the_excerpt_more($more) {
    in_category( \'events\' ) ? $my_read_more_text = \'Read event\' : $my_read_more_text = \'Read more\'; 
    global $post;
    return \'<a href="\'. get_permalink($post->ID) . \'">\'.$my_read_more_text.\'</a>\';
}
add_filter(\'excerpt_more\', \'wpse_60184_the_excerpt_more\');

//this will change the read more link when <!-- more --> is used & the_content()       
function wpse_60184_the_content_more( $more_link, $more_link_text ) {
    in_category( \'events\' ) ? $my_read_more_text = \'Read events\' : $my_read_more_text = \'Read more\';    
    return str_replace( $more_link_text, $my_read_more_text, $more_link );
}
add_filter( \'the_content_more_link\', \'wpse_60184_the_content_more\', 10, 2 );
第二段代码是用211主题测试的,它在localhost上运行良好。

  • wpse_60184_the_excerpt_more 在以下情况下创建“阅读更多”链接the_excerpt() 用于主题wpse_60184_the_content_more 将用新链接替换默认的“读取更多”链接。将使用<!-- more --> 标记

SO网友:MechEngineer

您可以使用excerpt_more 过滤器挂钩。

我建议只在帖子中添加一个特定的元数据字段,该过滤器将使用该字段覆盖默认文本。

可能的PHP如下(未测试):

function custom_excerpt_more( $more ) {
    global $post;

    $custom_read_more = get_post_meta($post->ID, \'read_more_text\', true);
    if (!empty($custom_read_more))
        return $custom_read_more;
    else
        return $more;
}
add_filter( \'excerpt_more\', \'custom_excerpt_more\' );

结束

相关推荐

_excerpt();标记不起作用

我对the_excerpt(); 我在索引中自己的主题中使用的标记。php和归档。php文件。代码如下:指数php<?php get_header(); ?> <section class=\"center-column\"> <?php if (have_posts()) : ?> <?php while (have_posts()) : the_post(); ?> <!--<?php ech