如何使我的帖子标题链接到自定义字段

时间:2013-10-10 作者:Adam

我的帖子中有一个自定义字段,名为post_bookmark_url 其中包含链接。我希望在我的主页上的摘录中显示的帖子标题链接到post_bookmark_url 而不是这篇文章的永久性。(我这样做是为了创建一个Drudge报告类型的聚合器。)

如何将主页上摘录中的“文章标题”链接到自定义字段?

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

我假设帖子标题标记是这样的:

<h1><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h1>
您只需更换<?php the_permalink(); ?> 使用您的帖子自定义元值:

<?php $post_bookmark = get_post_meta( get_the_ID(), \'post_bookmark_url\', true ); ?>

<h1><a href="<?php echo $post_bookarmk; ?>"><?php the_title(); ?></a></h1>
其他注意事项:

您需要考虑使用此代码的上下文。如果你只需要Blog Posts Index, 然后创建home.php 模板文件,并将其放在那里。这样,您的帖子标题在其他上下文中不会受到影响post_bookmark_url 未设置

SO网友:rohmann

您可以过滤永久链接URL。在这个过滤器中,我们可以检查是否存在*post\\u bookmark\\u url*元键。如果有,我们就用它来代替

add_filter(\'post_link\',\'check_for_custom_url\',10,3);
function check_for_custom_url( $permalink, $post, $leavename ) {
        $custom = get_post_meta( $post->ID, \'post_bookmark_url\', true );
        return ( $custom ) ? esc_url( $custom ) : $permalink;
}

//Version to check if we\'re on the home page as well
add_filter(\'post_link\',\'check_for_custom_url\',10,3);
function check_for_custom_url( $permalink, $post, $leavename ) {
    $custom = false;

    if( is_home() || is_front_page() )
        $custom = get_post_meta( $post->ID, \'post_bookmark_url\', true );

    return ( $custom ) ? esc_url( $custom ) : $permalink;
}

结束

相关推荐

在RSS提要中的CDATA上取消转义属性the_title()

我的目标是unescape the string. 那么,我该如何在Wordpress中做到这一点呢?假设我有下面的整个字符串:He said, &#8220;This is how it works...&#8221; 我似乎找不到内置的Wordpress函数来取消浏览&#8220; 和&#8221;. 如果在上使用unescapethe_title() (很抱歉之前没有指定)。在rss提要项上,我有以下代码,其中the_title() 不应被替换:<it