You are here:  Home » PHP » 如何添加内容并完全操纵您的WordPress RSS源

前段时间我们分享了如何使用Joost的一个名为RSS Footer的着名插件来控制你的WordPress RSS Footer。虽然插件很棒,但它非常有限。您只能向页脚添加文本,并且它始终与每个帖子的页脚上显示的文本相同。如果您想在RSS帖子中为每个帖子显示不同的文本,该怎么办?如果您希望特定帖子在RSS源中具有不同的标题,该怎么办?如果要在RSS源中显示特定的自定义字段,该怎么办?这就是为什么我们向您介绍这篇文章,它将向您展示如何在WordPress RSS Feed中添加任何类型的内容。这个黑客会让你控制你的WordPress RSS源,你可以随心所欲地操纵它。

注意:这个hack不适合初学者。只有那些对编辑functions.php文件感到满意且对php有一定了解的用户应该试试这个。初学者用户应该使用上面文章中提到的插件,或者咨询像我们这样的专业人士为你做这些。

1。将自定义字段添加到WordPress RSS页脚

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

function wpbeginner_postrss($content) {
global $wp_query;
$postid = $wp_query->post->ID;
$coolcustom = get_post_meta($postid, "coolcustom", true);
if(is_feed()) {
if($coolcustom !== "") {
$content = $content."<br /><br /><div>".$coolcustom."</div>
";
}
else {
$content = $content;
}
}
return $content;
}
add_filter("the_excerpt_rss", "wpbeginner_postrss");
add_filter("the_content", "wpbeginner_postrss");

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

你们中的一些人会说,但你刚刚做了一个RSS页脚插件用函数做的事情。是的,不。是的,我们在帖子的页脚添加代码,但是此文本与每个帖子的文本不完全相同。它是不同的,因为您通过自定义字段为每个帖子指定不同的文本。这个技巧将非常方便地遵守新的FTC指南,这些指南针对具有所有不同类型帖子的博客。

2。在RSS中添加附加文本到帖子标题

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

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

要完成此操作,请打开你的functions.php文件并在其中添加以下代码:

    function wpbeginner_titlerss($content) {
    global $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;
    }
    return $content;
    }
    add_filter("the_title_rss", "wpbeginner_titlerss");

代码说明:

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

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

function wpbeginner_cattitlerss($content) {
$postcat = "";
foreach((get_the_category()) as $cat) {
$postcat .= " (".$cat->cat_name . ")";
}
$content = $content.$postcat;
return $content;
}
add_filter("the_title_rss", "wpbeginner_cattitlerss");

说明:我们使用函数wpbgeinner_cattitlerss获取每个帖子的类别ID,然后在标题旁边显示。因此,如果标题是“获取联系表格7”,那么它将是“获取联系表格7 [插件]”。您可以看到此代码中没有if then then变量。我们使用$ content作为主标题和$ postcat变量来定义类别名称。如果你愿意,你可以重新排列。

3。在RSS

中的所有帖子上添加相同的文本如果您只想添加相同的文本,那么您也可以使用Joost的名为RSS Footer的插件,因为它更容易。但如果你想自己做,这就是你如何做到的。打开你的functions.php文件添加以下代码:

function wpbeginner_postrss($content) {
if(is_feed()){
$content = "This post was written by Syed Balkhi ".$content."Check out WPBeginner";
}
return $content;
}
add_filter("the_excerpt_rss", "wpbeginner_postrss");
add_filter("the_content", "wpbeginner_postrss");

解释:我们正在调用一个函数wpbeginner_postrss在每个帖子添加内容之前的帖子说这篇帖子是由Syed Balkhi写的,之后是内容查看WPBeginner。但我们添加函数if(is_feed),因此它只会显示在RSS Feeds中。

如果您想在RSS中的特定帖子上销售广告,添加自定义FTC指南或者只是希望更好地控制您的RSS Feed,这将非常有用。

评论被关闭。