将链接发布格式添加到主题,并将固定链接添加到RSS提要

时间:2012-01-25 作者:Mike Wills

我一直在通过一个child theme. 老实说,这是我第一次用WordPress做任何类型的主题工作。

我已经能够将标题permalink更改为我正在链接的链接,并在标题中添加符号,以便有视觉效果让人意识到可能存在不同的行为。(Example post)

我应该使用thematic的过滤器来推动对主题的这些更改,还是应该使用WordPress的过滤器?此外,我如何在RSS提要中添加永久链接,以便人们仍然可以在我的网站上发表评论(很像Dared Fireball)

我一直在做以下工作functions.php:

/**
 * Override the post title logic
 */
function mikewillsthematic_thematic_postheader_posttitle() {
    if (has_post_format(\'link\')) {
        $posttitle = \'<h2 class="entry-title"><a href="\';
        $posttitle .= get_post_meta( get_the_ID(), "post_format_data", true);
        $posttitle .= \'" title="Direct link to article" rel="bookmark">\';
        $posttitle .= \'&#8734; \';
        $posttitle .= get_the_title();   
        $posttitle .= "</a></h2>\\n";
    } else {
        // Handle other post types.
    }
    return $posttitle;
}
add_filter(\'thematic_postheader_posttitle\', \'mikewillsthematic_thematic_postheader_posttitle\');

/**
 * Override the RSS URL
 */
function mikewillsthematic_rss_permalink($permalink) {
    global $wp_query;
    if($url = get_post_meta($wp_query->post->ID, \'post_format_data\', true)) {
        return $url;
    }
    return $permalink;
}
add_filter(\'the_permalink_rss\', \'mikewillsthematic_rss_permalink\');

/**
 * Override the RSS title
 */
function mikewillsthematic_rss_title($title) {

    if (has_post_format(\'link\')) {
        $posttitle = \'&#8734; \';
            $posttitle .= $title;
    } else 
        $posttitle = $title;

    return $posttitle;
}
add_filter(\'the_title_rss\', \'mikewillsthematic_rss_title\');
但我觉得这似乎。。。过分的有更好的方法吗?

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

我找到了正确的搜索词how to add content to the RSS feed.

// Add permalink to RSS feed
function mikewillsthematic_postrss($content) {
    if(is_feed() && has_post_format(\'link\')) 
    {
        $content = $content.\'<p><a href="\'.get_permalink().\'">Permalink</a></p>\'; 
    }
    else {
        $content = $content;
    }
    return $content;
}
add_filter(\'the_excerpt_rss\', \'mikewillsthematic_postrss\');
add_filter(\'the_content\', \'mikewillsthematic_postrss\');

SO网友:helgatheviking

作为自封的主题支持专家,我可以简化您的第一个过滤器:

/**
 * Override the post title logic for post format \'link\'
 */
function mikewillsthematic_thematic_postheader_posttitle($posttitle) {
    if (has_post_format(\'link\')) {
        $posttitle = \'<h2 class="entry-title"><a href="\';
        $posttitle .= get_post_meta( get_the_ID(), "post_format_data", true);
        $posttitle .= \'" title="Direct link to article" rel="bookmark">\';
        $posttitle .= \'&#8734; \';
        $posttitle .= get_the_title();   
        $posttitle .= "</a></h2>\\n";
    } 
    return $posttitle;
}
add_filter(\'thematic_postheader_posttitle\', \'mikewillsthematic_thematic_postheader_posttitle\');
在将元URL放入链接之前,您可能还想测试它是否存在。我认为你的解决方案看起来并不过分。您想在3个位置更改post permalink,因此我并不奇怪您需要3个过滤器。有点奇怪为什么这不是链接格式的默认行为,但我对post格式还不够精通,不知道WP为什么会这样做。

afaik您不能通过WP过滤帖子标题。当您有解决方案(或之前)时,请在thematic forums:

结束

相关推荐