output buffer

Het kan zijn dat je geen enkele mogelijkheid kan vinden om de output van wordpress aan te passen. In dat geval bestaat de mogelijkheid de output te bufferen. En voordat deze naar de browser gaat nog aan te passen.

Een praktisch ¬†voorbeeld is dat als je het woordje home in de breadcrumb wil aanpassen in het geval een ‘single page’ van een custom posttype wordt opgeroepen.

Met onderstaande code kan elk woord worden aangepast. De output wordt even vastgehouden wat bijvoorbeeld de mogelijkheid geeft in de callback functie een stringreplace toe te voegen.

function callback($buffer) {
  // modify buffer here, and then return the updated code
  return $buffer;
}

function buffer_start() {
  ob_start("callback");
}

function buffer_end() {
  ob_end_flush();
}

add_action('wp_head', 'buffer_start');
add_action('wp_footer', 'buffer_end');

De vertraging van deze code wordt als minimaal beschouwd, maar de toepassing kan het beste worden geminimaliseerd. De voorkeur wordt toch gegeven aan het gebruik van filters, of directe aanpassing van de functie die de output gegenereerd voor de aan te passen output.

Leave a Reply

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.