【问题标题】:Change Wordpress feed <link> for one specific tag为一个特定标签更改 Wordpress 提要 <link>
【发布时间】:2015-07-07 23:55:40
【问题描述】:

我有一个外部页面,可以读取标签的 RSS 提要。我无法更改外部页面上的任何内容,因此挑战是更改我这边的 RSS 提要以符合要求。 在外部页面上显示了一个标签的 3 个最新帖子,并且在该部分的末尾(注意:不是在每个帖子之后,而是在所有 3 个帖子之后)有一个“查看全部”链接。此链接从提要中的元素接收其值,该元素默认设置为我的博客主页,例如http://myblog.com)。对于这个特定的标签,链接应该是http://myblog.com/tag/myspecialtag

要求是“查看全部”链接链接到标签页而不是主页。

我的想法是为元素添加一个条件来更改此特定类别的 URL。我尝试按照此处的建议更改提要模板:Customizing feeds,但由于某种原因,它根本没有更改模板。我试过的代码如下:

remove_all_actions( 'do_feed_rss2' );
add_action( 'do_feed_rss2', 'change_feed_rss2', 10, 1 );

function change_feed_rss2( $for_comments ) {
    $rss_template = get_template_directory() . '/feeds/feed-custom_rss2.php';
    if( file_exists( $rss_template ) )
        load_template( $rss_template );
    else
        do_feed_rss2( $for_comments ); // Call default function
}

当然,我创建了自定义提要模板并将其存储在主题的提要目录中。

由于这不起作用,我尝试查看过滤器/挂钩,但我找不到任何对我的问题有帮助的东西。有关如何最好地解决此问题的任何想法?

【问题讨论】:

    标签: wordpress tags feed


    【解决方案1】:

    我想出了以下解决方案: 我创建了一个新的自定义页面模板custom_rss-feed.php 并将代码从wp-includes/feed-rss.php 复制到其中。我将此模板分配给一个新页面。此外,我向get_bloginfo_rss 添加了一个过滤器,如下所示:

    function alter_bloginfo_rss($value, $key) {
    
        if ( $key === "url" &&
            is_page_template("custom_rss-feed.php")
        ) {
    
            return $value . "/my/custom/url";
        }
    
        return $value;
    }
    
    add_filter("get_bloginfo_rss", "alter_bloginfo_rss", 10, 2);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-08-03
      • 1970-01-01
      • 1970-01-01
      • 2016-06-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多