如何在您的WordPress RSS Feed中添加內容


前一段時間,我們分享瞭如何使用著名的Joost的RSS Footer插件來控制WordPress RSS Footer。 雖然插件很棒,但是它非常有限。 您只能將文本添加到頁腳中,並且始終與每個帖子的頁腳中顯示的文本相同。 如果要在RSS帖子中為每個帖子顯示不同的文本怎麼辦? 如果您希望特定帖子在RSS Feed中具有不同的標題,該怎麼辦? 如果要在RSS Feed中顯示特定的自定義字段怎麼辦? 這就是為什麼我們向您介紹本文的原因,它將向您展示如何在WordPress RSS Feed中添加任何類型的內容。 該技巧將使您可以控制WordPress RSS源,並且可以隨時進行操作。

注意:此技巧不適用於初學者。 只有對編輯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."

".$coolcustom."
"; } else { $content = $content; } } return $content; } add_filter('the_excerpt_rss', 'wpbeginner_postrss'); add_filter('the_content', 'wpbeginner_postrss');

現在,大多數人都在想這段代碼是如何工作的。 所以這是一個解釋。 我們創建了一個名為wpbeginner_postrss的函數,如果定義了一個名為“ coolcustom”的自定義字段,它將運行一個全局wp_query來搜索每個帖子。 如果定義了“酷自定義”,那麼它將在帖子內容之後顯示該值。 如果未定義自定義字段,則默認情況下該函數僅顯示帖子內容,而僅顯示其他內容。 我們使用變量$ 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”或“ sponsored_post”的自定義字段。 如果有人將這些自定義字段添加為true,則代碼會將其添加到文本中。 如果沒有,那麼您只會看到普通標題。 您首先可以看到,如果$ gpost為true,則代碼將查找,如果$ spost為true,則為true。 如果還沒有定義,則顯示正常內容。 但是,如果其中任何一個為真,那麼它將顯示您在此處指定的不同文本。 我們使用$ 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,然後在標題旁邊顯示該ID。 因此,如果標題現在為“獲取聯繫表7”,則其標題為“獲取聯繫表7”。 [Plugins]”。 您可以看到此代碼中沒有if 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 Feed中。

如果您想在RSS中的特定帖子上出售廣告,添加自定義FTC指南或只是想更好地控制RSS源,這將非常有幫助。

資料來源:我們在編寫本教程時使用了Joost的RSS Footer插件作為很多指導。 標題RSS hack部分是我們從法語教程網站獲得的,我們添加了自己的變量,並使其能夠成為每個自定義字段的自定義標題。