如何添加内容,并完全操纵你的WordPress的RSS源

前一阵子,我们分享了如何使用Joost的一个名为RSS Footer的着名插件控制您的WordPress RSS页脚。 虽然插件是伟大的,但它是非常有限的。 您只能将文字添加到页脚,并且每个帖子的页脚上始终显示相同的文字。 如果你想在你的RSS帖子中显示不同的文章? 如果您希望特定帖子在RSS源中拥有不同的标题,该怎么办? 如果您想要在RSS Feed中显示特定的自定义字段,该怎么办? 那么这就是为什么我们向你展示这篇文章,它将告诉你如何在你的WordPress RSS源中添加任何类型的内容。 这个黑客将把你控制你的WordPress的RSS源,你可以操纵它在任何你想要的。

注意:这个黑客不适合初学者。 只有对编辑functions.php文件感觉舒适的用户,并有一些PHP的知识应该试试这个。 新手用户应该使用上面的文章中提到的插件,或咨询像我们这样的专业人士为您做。

1.添加一个自定义字段到您的WordPress的RSS页脚

在第一个示例中,我们将向您展示如何使用自定义字段来显示WordPress RSS Feed中的特定文本/对象。 这个技巧将允许您为每个帖子显示不同的文本,广告,图片或其他内容。 首先打开你的functions.php,并将以下代码粘贴到php标签中:

功能site_postrss($内容){
 全球$ wp_query;
 $ postid = $ wp_query-> post-> ID;
 $ coolcustom = get_post_meta($ postid,'coolcustom',true);
 if(is_feed()){
 if($ coolcustom!==''){
 $ content = $ content。“ 

“$ coolcustom。” “; } else { $ content = $ content; } } 返回$ content; } add_filter('the_excerpt_rss','site_postrss'); add_filter('the_content','site_postrss');

现在大多数人都在想这个代码是如何工作的。 所以这里是一个解释。 我们创建一个名为site_postrss的函数,运行一个全局的wp_query,在每个帖子中搜索一个名为“coolcustom”的自定义字段。 如果酷酷定制是定义,那么它显示后的内容后的值。 如果没有定义自定义字段,那么默认情况下该函数仅显示发布内容,而不显示其他内容。 我们使用变量$ content来显示内容。 我们使用if(is_feed)函数,并将自定义文本或其他内容添加到您可以通过第二个过滤器看到的主要内容本身。 但是由于if(is_feed)函数的用户,它只会显示在RSS源中。 通过这样做,我们避免了所有的兼容性问题。

你们中的一些人会说,但你只是做了什么RSS页脚插件做的功能。 是的,没有。 是的,我们在帖子的页脚添加了代码,但是这个文本与每个帖子不一样。 这是不同的,因为您通过自定义字段为每个帖子指定不同的文本。 这个技巧将非常方便地遵守新的FTC指南,这些指南适用于所有不同类型帖子的博客。

2.添加额外的文本在RSS中发布标题

您的博客是否有访客帖子,赞助帖子和评论帖子? 那么如果你这样做,你会发现这非常有用。 一些博客有自定义样式来显示每个不同类型的帖子,所以他们的用户可以区分它们。 但是当这些帖子进入读者的时候,所有的风格都消失了。 这就是当这个技巧派上用场的时候。 在这个技巧中,我们将在标题之前或之后添加任何文本。

例如,如果您的标题是“商业WordPress主题 – StudioPress”,并且它是一个赞助文章,那么您可以将其改为“赞助商:商业WordPress主题 – StudioPress”。 同样如果有人写了一个客人的帖子等

要做到这一点,打开你的functions.php文件,并在其中添加下面的代码:

功能site_titlerss($内容){
     全球$ wp_query;
     $ postid = $ wp_query-> post-> ID;
     $ gpost = get_post_meta($ postid,'guest_post',true);
     $ spost = get_post_meta($ postid,'sponsored_post',true);

     if($ gpost!==''){
     $ content ='Guest Post:'。$ content;
     }
     elseif($ spost!==''){
     $ content ='Sponsored Post:'。$ content;
     }
     else {
     $ content = $ content;
     }
     返回$ content;
     }
     add_filter('the_title_rss','site_titlerss'); 

代码说明:

我们使用名为site_titlerss的函数,它运行全局wp_query来搜索每个帖子,如果它包含$ gpost或$ spost。 这两个元素基本上都是寻找两个名为“guest_post”或“sponsor_post”的特定自定义字段。 如果任何人有这些自定义字段添加一个值为true,那么代码将其添加到文本中。 如果没有,那么你只会看到正常的标题。 如果$ gpost是真的,那么你可以首先看到代码查找,如果$ spost是true,那么这是不正确的。 如果这还没有定义,那么它显示正常的内容。 但是,如果其中任何一个是真的,那么它会显示您在此处指定的不同文本。 我们使用$ content字符串来显示帖子标题。

现在只是在标题中显示自定义字段。 你想在每个标题上显示分类名称? 那么你应该简单地将下面的代码粘贴到你的functions.php文件中:

功能site_cattitlerss($ content){
 $ postcat =“”;
 foreach((get_the_category())为$ cat){
 $ postcat。='('。$ cat-> cat_name。')';
 }
 $ content = $ content。$ postcat;
 返回$ content;
 }
 add_filter('the_title_rss','site_cattitlerss'); 

说明:我们使用函数wpbgeinner_cattitlerss来获取每个帖子的类别ID,然后在标题旁显示。 所以,如果标题是“Get Contact Form 7”,那么它将是“Get Contact Form 7 [Plugins]”。 你可以看到这个代码中没有变量。 我们使用$ content作为主标题和$ postcat变量来定义类别名称。 如果你喜欢,你重新排列。

3.在RSS中的所有文章上添加相同的文本

如果你只是想添加相同的文本,那么你可以使用Joost的RSS脚注插件,因为它更容易。 但如果你想自己做,这是你如何做到这一点。 打开你的functions.php文件,添加如下代码:

功能site_postrss($内容){
 如果(is_feed()){
 $ content ='这篇文章是由Syed Balkhi写的'$ content.'Check out site';
 }
 返回$ content;
 }
 add_filter('the_excerpt_rss','site_postrss');
 add_filter('the_content','site_postrss'); 

现场

如果您想在RSS中的特定帖子上出售广告,添加自定义的FTC指南或只是想更好地控制您的RSS源,这将非常有帮助。

来源:我们在编写本教程时使用了Joost的RSS页脚插件。 标题RSS hack部分,我们从法语教程网站获得,我们添加了自己的变量,并赋予它自定义字段的自定义标题的能力。