每种定制帖子类型的不同阅读更多链接

时间:2015-04-24 作者:Brad Smith

正在尝试为不同的自定义帖子类型创建自定义“阅读更多”链接。

已尝试此代码,但未按预期工作。可以肯定的是,if/else逻辑是错误的。

使用Genesis主题,如果这有区别的话。

function excerpt_read_more_link($output) {
    global $post;
    if ($post->post_type = \'speaker\')
      {
        $output .= \'<p><a class="speaker-more-link" href="\'. get_permalink($post->ID) . \'">View Speaker Profile</a></p>\';  
        }

    elseif ($post->post_type = \'resources\')
      {
        $output .= \'<p><a class="speaker-more-link" href="\'. get_permalink($post->ID) . \'">More Resource Content</a></p>\';  
        }

    else
        $read_more_text = \'Read more\';
    return $output . \'<a class="more-link" href="\'. get_permalink($post->ID) . \'">\'.$read_more_text.\'</a>\';
}
add_filter(\'the_excerpt\', \'excerpt_read_more_link\');

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

不知道这是否有什么不同,也不知道创世记,但试试看

function excerpt_read_more_link($output) {
global $post;

if ( \'speaker\' == get_post_type() ) { $output .= \'<p><a class="speaker-more-link" href="\'. get_permalink() . \'">View Speaker Profile</a></p>\'; }
elseif ( \'resources\' == get_post_type() ) { $output .= \'<p><a class="speaker-more-link" href="\'. get_permalink() . \'">More Resource Content</a></p>\'; }
else { $output . \'<a class="more-link" href="\'. get_permalink() . \'">Read more</a>\'; }

return $output;
}add\\u filter(\'the\\u extract\',\'extract\\u read\\u more\\u link\');

编辑:我不知道,对我来说,if/else逻辑似乎很可靠。虽然不确定,但还没有真正使用任何自定义的帖子类型,而且现在已经很晚了,我已经半睡半醒了:)

edit2:更新的代码。

SO网友:Pat Gilmour

尝试使用get_the_excerpt 而不是the_excerpt (它的语法与the_content)

作为旁注,Genesis有现成的函数来做您不想使用的事情the_excerpt. 您可以在Studiopress网站上找到以下所有内容。

如果您使用的是“Genesis设置页面上内容存档部分的内容限制”,请使用此功能:

//* Modify the Genesis content limit read more link
add_filter( \'get_the_content_more_link\', \'sp_read_more_link\' );
function sp_read_more_link() {
    return \'... <a class="more-link" href="\' . get_permalink() . \'">[Continue Reading]</a>\';
}
当“使用WordPress More标记在您的网站上断开帖子”时,请使用以下选项:

//* Modify the WordPress read more link
add_filter( \'the_content_more_link\', \'sp_read_more_link\' );
function sp_read_more_link() {
    return \'<a class="more-link" href="\' . get_permalink() . \'">[Continue Reading]</a>\';
}
但是,如果您在Genesis中使用“内容限制”,那么StudioPress片段将提供the following: “使用Genesis设置页面上“内容存档”部分的内容限制时,修改“阅读更多”链接的代码:”

//* Modify the Genesis content limit read more link
add_filter( \'get_the_content_more_link\', \'sp_read_more_link\' );
function sp_read_more_link() {
    return \'... <a class="more-link" href="\' . get_permalink() . \'">[Continue Reading]</a>\';
}

结束

相关推荐

每种定制帖子类型的不同阅读更多链接 - 小码农CODE - 行之有效找到问题解决它

每种定制帖子类型的不同阅读更多链接

时间:2015-04-24 作者:Brad Smith

正在尝试为不同的自定义帖子类型创建自定义“阅读更多”链接。

已尝试此代码,但未按预期工作。可以肯定的是,if/else逻辑是错误的。

使用Genesis主题,如果这有区别的话。

function excerpt_read_more_link($output) {
    global $post;
    if ($post->post_type = \'speaker\')
      {
        $output .= \'<p><a class="speaker-more-link" href="\'. get_permalink($post->ID) . \'">View Speaker Profile</a></p>\';  
        }

    elseif ($post->post_type = \'resources\')
      {
        $output .= \'<p><a class="speaker-more-link" href="\'. get_permalink($post->ID) . \'">More Resource Content</a></p>\';  
        }

    else
        $read_more_text = \'Read more\';
    return $output . \'<a class="more-link" href="\'. get_permalink($post->ID) . \'">\'.$read_more_text.\'</a>\';
}
add_filter(\'the_excerpt\', \'excerpt_read_more_link\');

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

不知道这是否有什么不同,也不知道创世记,但试试看

function excerpt_read_more_link($output) {
global $post;

if ( \'speaker\' == get_post_type() ) { $output .= \'<p><a class="speaker-more-link" href="\'. get_permalink() . \'">View Speaker Profile</a></p>\'; }
elseif ( \'resources\' == get_post_type() ) { $output .= \'<p><a class="speaker-more-link" href="\'. get_permalink() . \'">More Resource Content</a></p>\'; }
else { $output . \'<a class="more-link" href="\'. get_permalink() . \'">Read more</a>\'; }

return $output;
}add\\u filter(\'the\\u extract\',\'extract\\u read\\u more\\u link\');

编辑:我不知道,对我来说,if/else逻辑似乎很可靠。虽然不确定,但还没有真正使用任何自定义的帖子类型,而且现在已经很晚了,我已经半睡半醒了:)

edit2:更新的代码。

SO网友:Pat Gilmour

尝试使用get_the_excerpt 而不是the_excerpt (它的语法与the_content)

作为旁注,Genesis有现成的函数来做您不想使用的事情the_excerpt. 您可以在Studiopress网站上找到以下所有内容。

如果您使用的是“Genesis设置页面上内容存档部分的内容限制”,请使用此功能:

//* Modify the Genesis content limit read more link
add_filter( \'get_the_content_more_link\', \'sp_read_more_link\' );
function sp_read_more_link() {
    return \'... <a class="more-link" href="\' . get_permalink() . \'">[Continue Reading]</a>\';
}
当“使用WordPress More标记在您的网站上断开帖子”时,请使用以下选项:

//* Modify the WordPress read more link
add_filter( \'the_content_more_link\', \'sp_read_more_link\' );
function sp_read_more_link() {
    return \'<a class="more-link" href="\' . get_permalink() . \'">[Continue Reading]</a>\';
}
但是,如果您在Genesis中使用“内容限制”,那么StudioPress片段将提供the following: “使用Genesis设置页面上“内容存档”部分的内容限制时,修改“阅读更多”链接的代码:”

//* Modify the Genesis content limit read more link
add_filter( \'get_the_content_more_link\', \'sp_read_more_link\' );
function sp_read_more_link() {
    return \'... <a class="more-link" href="\' . get_permalink() . \'">[Continue Reading]</a>\';
}

相关推荐