SÄ hÀr lÀgger du till innehÄll och hanterar dina WordPress RSS-flöden helt

Hur man skapar anpassade RSS-flöden i WordPress

För ett tag tillbaka delade vi hur du kan styra din WordPress RSS-sidfot med hjÀlp av ett berömt plugin som heter RSS Footer av Joost. Medan plugin Àr bra, men det Àr mycket begrÀnsat. Du kan bara lÀgga till text i sidfoten, och det Àr alltid samma text som visas i varje inlÀggs sidfot. Vad hÀnder om du vill visa olika text för varje inlÀgg i ditt RSS-inlÀgg? Vad hÀnder om du vill att specifika inlÀgg ska ha en annan titel i RSS-feeds? Vad hÀnder om du vill visa ett specifikt anpassat fÀlt i dina RSS-feeds? Det hÀr Àr dÀrför vi presenterar den hÀr artikeln som visar hur du lÀgger till alla typer av innehÄll i dina WordPress RSS-flöden. Detta hack kommer att ge dig kontroll över dina WordPress RSS-feeds och du kan manipulera det hur som helst du vill.

Obs! Det hÀr hacket Àr inte för nybörjare. Endast anvÀndare som kÀnner sig bekvÀma med att redigera functions.php-filen och har viss kunskap om php bör prova detta. Nybörjare bör antingen anvÀnda plugin som nÀmns i artikeln ovan eller konsultera yrkesverksamma som vi för att göra det Ät dig.

1. LÀgg till ett anpassat fÀlt i din WordPress RSS-sidfot

I det hĂ€r första exemplet visar vi dig hur du kan anvĂ€nda anpassat fĂ€lt för att visa specifik text / objekt i ditt WordPress RSS-flöde. Detta trick lĂ„ter dig visa olika text, annonser, bilder eller nĂ„got annat för varje inlĂ€gg. Öppna först dina funktioner.php och klistra in följande koder i php-taggarna:


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');

Nu undrar de flesta av er hur den hĂ€r koden fungerar. SĂ„ hĂ€r Ă€r en förklaring. Vi skapar en funktion som heter wpbeginner_postrss som kör en global wp_query för att söka i varje inlĂ€gg om ett anpassat fĂ€lt som kallas “coolcustom” definieras. Om Cool Custom Ă€r definierat visar det vĂ€rdet efter inlĂ€ggets innehĂ„ll. Om det inte finns nĂ„got anpassat fĂ€lt definierat visar funktionen som standard bara inlĂ€ggets innehĂ„ll och inget annat. Vi anvĂ€nder variabeln $ innehĂ„ll för att visa innehĂ„ll. Vi anvĂ€nder if (is_feed) -funktionen och lĂ€gger till anpassad text eller annat innehĂ„ll till sjĂ€lva huvudinlĂ€ggets innehĂ„ll som du kan se med det andra filtret. Men det visas bara i RSS-feeds pĂ„ grund av vĂ„r anvĂ€ndare av if (is_feed) -funktionen. Genom att göra det pĂ„ detta sĂ€tt undviker vi alla kompatibilitetsproblem.

NÄgra av er kommer att sÀga men ni gjorde precis vad RSS footer plugin gör med en funktion. Ja och nej. Ja, vi lÀgger till koden lÀngst ner i inlÀgget, men den hÀr texten Àr inte samma exakta text för varje inlÀgg. Det Àr annorlunda eftersom du anger olika text för varje inlÀgg via anpassade fÀlt. Detta trick kommer att vara mycket praktiskt för att följa de nya FTC-riktlinjerna för bloggar som har alla olika typer av inlÀgg.

2. LÀgga till ytterligare text i inlÀggstitlar i RSS

Har din blogg gÀstinlÀgg, sponsrade inlÀgg och granskningsinlÀgg? Tja, om du gör det kommer du att hitta det hÀr mycket anvÀndbart. Vissa bloggare har anpassad styling för att visa varje typ av inlÀgg, sÄ att deras anvÀndare kan skilja mellan dem. Men nÀr dessa inlÀgg lÀses in Àr alla stylingar borta. Det Àr dÄ det hÀr tricket kommer till nytta. I det hÀr tricket lÀgger vi till vilken text som helst före eller efter titeln.

Till exempel om din titel var “Kommersiellt WordPress-tema – StudioPress” och det var ett sponsrat inlĂ€gg kan du Ă€ndra det till “Sponsrat inlĂ€gg: Kommersiellt WordPress-tema – StudioPress”. Samma om nĂ„gon skrev ett gĂ€stinlĂ€gg etc.

För att Ästadkomma detta, öppna din functions.php-fil och lÀgg till följande kod dÀr:


    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');

Förklaring till koden:

Vi anvĂ€nder funktionen som heter wpbeginner_titlerss som kör en global wp_query för att söka i varje inlĂ€gg om den innehĂ„ller antingen $ gpost eller $ spost. Dessa tvĂ„ element letar i princip efter tvĂ„ specifika anpassade fĂ€lt som kallas “gĂ€st_post” eller “sponsrad_post”. Om nĂ„gon har dessa anpassade fĂ€lt tillagda med ett vĂ€rde sant, kommer koden att lĂ€gga till det i texten. Om inte sĂ„ ser du bara den vanliga titeln. Du kan först se att koden letar efter om $ gpost Ă€r sant, om det inte Ă€r sant om $ spost Ă€r sant. Om det inte heller Ă€r definierat visar det normalt innehĂ„ll. Men om nĂ„gon av dem var sant visas den olika texten du anger hĂ€r. Vi anvĂ€nder $ content string för att visa inlĂ€ggstiteln.

Nu visade bara anpassade fÀlt i titeln. Vill du visa kategorinamn pÄ varje titel? Tja, du borde helt enkelt klistra in följande kod i din functions.php-fil:


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');

Förklaring: Vi anvĂ€nder funktionen wpbgeinner_cattitlerss för att fĂ„ kategori-ID för varje inlĂ€gg och sedan visa det precis bredvid titeln. SĂ„ om titeln Ă€r “Skaffa kontaktformulĂ€r 7” skulle det nu vara “Skaffa kontaktformulĂ€r 7 [Plugins]”. Du kan se att det inte finns nĂ„gon om sedan variabel i den hĂ€r koden. Vi anvĂ€nder $ content för huvudtiteln och $ postcat-variabeln för att definiera kategorinamnet. Du ordnar om det om du vill.

3. LÀgg till samma text pÄ alla inlÀgg i RSS

Om du bara vill lĂ€gga till samma text kan du lika gĂ€rna anvĂ€nda plugin som heter RSS Footer av Joost eftersom det Ă€r lĂ€ttare. Men om du vill göra det sjĂ€lv sĂ„ gör du det. Öppna din functions.php-fil, lĂ€gg till följande kod:


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');

Förklaring: Vi kallar en funktion wpbeginner_postrss för att lÀgga till ett innehÄll i varje inlÀgg innan inlÀgget som sÀger Detta inlÀgg skrevs av Syed Balkhi och efter innehÄllet Kolla in WPBeginner. Men vi lÀgger till funktionen om (is_feed), sÄ den visas bara i RSS-feeds.

Detta skulle vara till stor hjÀlp om du vill sÀlja annonser pÄ specifika inlÀgg i RSS, lÀgga till anpassade FTC-riktlinjer eller bara vill ha mer kontroll över dina RSS-flöden.

KÀlla: Vi anvÀnde Joosts RSS Footer-plugin för mycket vÀgledning för att skriva denna handledning. Titeln RSS-hackad del fick vi frÄn en fransk handledningssida och vi lade till vÄra egna variabler och gav den möjligheten att vara anpassade titlar per anpassat fÀlt.