Hoe plaats je de rss-feed van een WordPress-blog op een andere website?

Met een klein php-scriptje kun je de rss-feed van een WordPress blog op een andere website zetten. Het onderstaande stukje php-code haalt de feed op en maakt er html van. Je kunt dit alleen gebruiken in een php-pagina en het werkt alleen als je provider php ondersteunt – maar dat doen vrijwel alle providers tegenwoordig.

1. Plaats de PHP-code

Plaats de code op de plek op je webpagina waar je de feed van de WordPress blog wilt weergeven. Ik plaats de php-code tussen <div id=”feed”> en </div>
tags, waardoor ik hem gemakkelijk kan opmaken met css.

Als voorbeeld heb ik hier de feed van een van mijn websites gebruikt. Vervang de url in de eerste regel van het script door de url van jouw rss-feed. De url van de rss feed van je WordPress website is de url met daar achter /feed. Bijvoorbeeld: http://www.jouwwebsite.nl/feed

    <?php
// Plaats hieronder tussen de enkele aanhalingstekens
// de url van je feed, op de plaats waar hier als voorbeeld
// http://www.e-rik.nl/feed staat
    define(feed,'http://www.e-rik.nl/feed');
// de volgende regel haalt de feed van de server op
    $xml_feed = file_get_contents(feed);
// de volgende regel creëert een xml parser
    $xml_parser = xml_parser_create();
// de volgende regel vertelt de xml parser welke variabelen er zijn
    xml_parse_into_struct($xml_parser,$xml_feed,$xml_keys,$xml_index);
// de volgende regel voert het parsen uit
    xml_parser_free($xml_parser);
    for($i = 0;!empty($xml_index['TITLE'][$i]);$i++){
// de volgende regel genereert de kop boven je RSS-feed
    if($i == 0){
    echo '
<h3>Nu op <a href="'.$xml_keys[$xml_index['LINK'][$i]]['value'].'">'.strtolower($xml_keys[$xml_index['LINK'][$i]]['value']).'
    </a></h3>
<p>';
     }else{
// de volgende regels genereren de berichten
// met bij elk bericht kopregel en samenvatting
    echo '<span class="heading"><a href="'.$xml_keys[$xml_index['LINK'][$i]]['value'].'">'.$xml_keys[$xml_index['TITLE'][$i]]['value'].
    '</a></span>'.$xml_keys[$xml_index['DESCRIPTION'][$i]]['value'].'</p>
<p>';
    }}
    ?>

2. Style je feed

Je feed style je eenvoudig met css. Dat gebeurt via id=”feed” in de omsluitende div-tag en class=”heading” in de span-tag. De css zet je in een stylesheet. Bijvoorbeeld:

#feed {
font-family: verdana, sans-serif;
width: 200px;
padding: 5px;
font-size: 0.8em;
text-align: left;
line-height: 1.7em;
-moz-box-shadow:  0px 0px 16px 1px #ddd;
box-shadow:  0px 0px 16px 1px #ddd;
-webkit-box-shadow:  0px 0px 16px 1px #ddd;
border: 1px solid #ddd;
}
#feed .heading a{
font-size: 1.2em;
font-weight: bold;
color: #446488;
}

3. Klaar!

De codefragmenten op deze pagina zijn opgemaakt met de plugin SyntaxHighlighter Evolved.

Door de rss-feed van een WordPress blog op een andere website te plaatsen, creëer je in één keer een aantal backlinks naar het blog. Dit kan bijdragen aan een betere positie in zoekmachines (SEO).

4 reacties op “Hoe plaats je de rss-feed van een WordPress-blog op een andere website?

  1. kaatje

    Bedankt voor de code! Ik heb nu een RSS feed van mijn nieuwsberichten op mijn startpagina gezet. Is het mogelijk op deze manier ook een maximaal aantal berichten voor de feed in te stellen?

    met vriendelijke groet,
    Katrien Joosten

    Reageren
    1. e-rik Bericht auteur

      Hoi Katrien,

      Je kunt dit op twee manieren doen.
      Als de feed afkomstig is van een WordPress blog, kun je daar in de settings aangeven hoeveel berichten er in de feed moeten worden opgenomen.
      Je kunt ook de code van het script wijzigen, zodat het script de output beperkt tot de laatste x berichten.

      Verander daartoe de volgende regel:
      for($i = 0;!empty($xml_index['TITLE'][$i]);$i++){
      in:
      for($i = 0;$i<3;$i++){
      waarbij $1<3 bepaalt hoeveel berichten er worden weergegeven (-1).

      Als dit getal groter is dan het aantal berichten in de feed worden alle berichten in de feed getoond (en mogelijk een foutmelding, dat heb ik nog niet getest :)

      Reageren
  2. Jordy

    Mooi script is er ook een mogelijkheid om het aantal te weergeven woorden aan te passen bv max 200 worden per feed alvast bedankt !

    Reageren
    1. Erik Bericht auteur

      Hoi Jordi,

      Het aantal woorden dat wordt weergegeven in de feed wordt bepaald door de instellingen van de site waar de feed vandaan komt. Ten eerste bij Instellingen/Lezen, staat daar toon het hele bericht of de samenvatting? Vervolgens maakt het verschil of je in een bericht de samenvatting hebt ingevuld of niet. Tenslotte zul je in functions.php of in een custom plugin de lengte van de samenvatting en de lengte van de feed tekst moeten aanpassen. Dus het kan wel maar het vergt wel de nodige regeltjes code.

      Kijk voor meer informatie over het creëren van een custom lengte van rss feeds hier.

      Voor het aanpassen van de excerpt-lengte kun je deze code gebruiken:

      < ?php add_filter('excerpt_length', 'my_excerpt_length'); function my_excerpt_length($length) { return 10; // Or whatever you want the length to be. }?>

      Reageren

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *

Let op!

Als je wilt dat je vraag serieus kan worden beantwoord, controleer dan of je hierboven minimaal het volgende hebt vermeld:

  • de url van de website
  • het gebruikte thema en of je dit hebt aangepast, al dan niet in een child-theme
  • indien van toepassing: de plugin die het probleem geeft
  • de pagina(s) waar het probleem zich voordoet
  • alle andere informatie die nodig kan zijn om het probleem te analyseren.