修改‘阅读更多内容’链接,添加一个新类

时间:2012-08-31 作者:Alvaro

我想在“阅读更多”链接中添加一个类。实际上我有这个:

<?php the_content( \'Read more...\' ); ?>
其输出:

<a href="...?p=14#more-14" class="more-link">Read more…</a>
如何将类(使用PHP)添加到链接中,使其输出:

<a href="...?p=14#more-14" class="more-link my_new_class">Read more…</a>

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

呼叫时(确切)发生了什么the_content() 在模板中,您可以不使用任何参数调用它。这意味着该函数已经具有默认值null 对于这两个参数:“更多”链接文本和布尔开关,允许您在“更多”链接文本之前剥离摘要内容。

这个the_content() 函数调用get_the_content() 内部(并传入参数)。然后,它运行附加到the_content-滤器因此,基本上,内部没有任何与链接或任何其他内容(除了过滤器)相关的内容the_content() - 发生在里面get_the_content().

我们得到了the_content_more_link-滤器

滤芯中的过滤器

apply_filters( 
    \'the_content_more_link\',
    \' <a href="\' . get_permalink() . "#more-{$post->ID}\\" class=\\"more-link\\">$more_link_text</a>",
    $more_link_text
);
过滤器运行中的两个参数(1starg)是附加回调函数中的可访问参数。

// Example: Somewhere in core, a plugin or a theme
$output = apply_filters( \'some_filter\', $arg_one, $arg_two );

// Example: Somewhere in a custom plugin
// Attach the filter: Attach filter name, callback function name, priority, number of taken args
add_filter( \'some_filter\', \'wpse63748_callback_function\', 10, 2 );
function wpse63748_callback_function( $arg_one, $arg_two )
{
    // Do something with Arg One = modify the output
    // You have Arg two to help you

    // Always return the first arg for filter callback functions.
    return $arg_one;
}
修改»更多«-链接现在是实际/真实的插件:

/** Plugin Name: (#63748) Modify the »more«-link. */
add_action( \'the_content_more_link\', \'wpse63748_add_morelink_class\', 10, 2 );
function wpse63748_add_morelink_class( $link, $text )
{
    return str_replace(
        \'more-link\',
        \'more-link CUSTOM_CLASSES_HERE\',
        $link
    );
}
只需在阅读的地方添加您的类CUSTOM_CLASSES_HERE 然后将其上载到插件目录或删除注释Plugin Name: ... 并在主题功能中使用它。php文件。

SO网友:jb510

您可以使用\\u content\\u more\\u链接过滤器完全替换more链接,只需在其中添加类,请参阅下面代码中的“自定义类”:

function new_content_more($more) {
       global $post;
       return \' <a href="\' . get_permalink() . "#more-{$post->ID}\\" class=\\"more-link custom-class\\">Read More...</a>";
}   
add_filter( \'the_content_more_link\', \'new_content_more\' );

SO网友:Sarderon

你也可以在原来的“更多…”中添加一个过滤器link,只需将此代码添加到函数中。php文件:

function yourtheme_content_more() {
   $link = get_permalink(\'\');
   $new_link = \'<span class="see_more"><a class="button" href="\' . esc_url($link) . \'">See more from this...</a></span>\';

   return $new_link;
}
add_filter(\'the_content_more_link\', \'yourtheme_content_more\');

SO网友:Sagive

Wordpress在codex中有一条关于阅读更多。。。

您可以在此处找到:

In a nutshell you can to this:

<?php the_content(\'<span class="moretext">...on the edge of
your seat? Click here to solve the mystery.</span>\'); ?>

在那里,您可以更改类或用div等换行。。。

结束

相关推荐

get excerpt without images

有没有办法不使用get\\u the\\u extract()获取图像?我正在使用my\\u recent\\u post()函数将帖子拉到主页上,我不需要让它拉帖子中的图像,只需拉一些文本。下面是我正在使用的函数:function my_recent_post() { global $post; $html = \"\"; $my_query = new WP_Query( array( \'post_type\' => \'po