Pagina1 van 1

WordPress – Backslash behoud in Posts

WordPress – Backslash behoud in Posts
   0

Backslash behoud (\) brengt ons bij een van de vervelende “features” van WordPress: het stript automatisch backslashes van posts.
Het heeft z’n doel en toepassing, maar het is verrekte vervelend als je probeert code voorbeelden te plaatsen op jouw WordPress website.

In dit erg korte artikel laat ik je zien hoe ik het opgelost heb voor mijn websites.
Een kleine functie die alle backslashes van een post omzet naar HTML entities, waardoor ze niet verloren gaan of verwijderd worden. Weergave in tekst en in code voorbeelden werkt zoals verwacht.

Overigens; deze functie doet dit iedere keer als je een post opslaat. Zelf een HTML entity in de code (Tekst view) werkt namelijk maar èèn keer, omdat bij het inladen van een post in de editor, de HTML entity weer een gewone backslash is. Deze functie vervangt bij een update deze weer correct naar een backslash HTML entity.




Backslash behoud door middel van HTML Entity

De functie is eigenlijk belachelijk eenvoudig en ik kwam op dit idee door een andere WordPress toepassing die ik gemaakt heb voor weergave van een artikel inhoud.
Ik gebruik het op mijn eigen websites en het werkt uitstekend.

Dit is wat de functie doet:

Als een post geplaatst wordt (nieuwe post, post editen, etc), dan zal deze functie elke voorkomen van een backslash vervangen door de HTML entity voor een backslash (zie onze HTML ASCII Tabel) wat de volgende HTML “code” is: “#&92; “.

De post wordt vervolgens opgeslagen, waarbij WordPress de backslashes verwijderd maar niet de HTML entities.

Bij het opnieuw openen van een post, om te bewerken bijvoorbeeld, zullen de backslashes echter zichtbaar worden als gewone backslashes.

Als je de gewijzigde post weer opslaat, doet de functie weer z’n werk en zo blijven backslashes behouden.

Als iemand denkt dat dit verkeerd is, of gevaarlijk is, of betere methoden weet, dan hoor ik dat graag in de opmerkingen!

Mijn Functie voor BackSlash Behoud

Plak de volgende code in de functions.php file van het theme dat je actief gebruikt.

Let er wel op dat je dit moet plaatsen voor elke andere aanroep van “add_action” met “save_post” erin, dus die hierop lijkt:
add_action('save_post', 'eenofanderefunctie' ); .

Als je dat niet doet, dan werkt het grapje niet, want de andere call kan de backslashes al strippen. Het kan overigens goed zijn dat jouw functions.php nog niet zo’n dergelijke call heeft, dus als je het niet zeker weet, plak het dan helemaal aan het begin van het bestand (na een eventuele “<?php” natuurlijk)!

Dat dit werkt kun je overigens in deze post al zien … er staan hier genoeg backslashes in die lekker blijven staan … 

LET OP! 

In regel 5, moet je dit stukje code '\'  vervangen met dit:  ‘&#92;’ (inclusief de enkele aanhalingstekens).
Helaas blijft het content management systeem of de code highlighter het vervangen.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
// T4A Preserve Backslashes in posts

function t4a_keepbackslash($PostID) {
    $thePost = get_post($PostID);
    $Content = str_replace('\\', '\', $thePost->post_content);
       
    // unhook this function so it doesn'
t loop infinitely
    remove_action( 'save_post', 't4a_keepbackslash' );

    $UpdatedPost = array (
          'ID'           => $PostID,
          'post_title'   => $thePost->post_title,
          'post_content' => $Content
        );
   
    wp_update_post( $UpdatedPost );
       
    // re-hook this function
    add_action( 'save_post', 't4a_keepbackslash' );
}

add_action('save_post', 't4a_keepbackslash' ); // Update Content when saving content

 

Ondersteun ons ...


Jouw ondersteuning wordt zeer gewaardeerd, en hoeft zelfs niets te kosten. Bijvoorbeeld door links naar ons te delen op social media, of andere websites.

Andere vormen kunnen ook gratis zijn (b.v. shoppen op Amazon).
Alle opbrengsten worden gebruikt voor web-hosting kosten, project hardware en software, koffie, etc.

Hartelijk dank voor wie al heeft bijgedragen!
Het is altijd geweldig om te zien hoe men mijn artikeltjes en applicaties weet te waarderen.

Merk op dat het klikken op affiliate links een kleine commissie voor ons kunnen genereren - dit wordt zeer gewaardeerd.

Reacties


Er zijn nog geen reacties geplaatst.
Je kunt jouw eigen opmerkingen plaatsen m.b.v. dit formulier, of een reactie op een bestaande opmerking plaatsen door op de "Beantwoorden" knop te klikken.



Jouw Opmerking ...

Plaats hier geen grote bestanden (zoals source codes, log files of config files). Gebruik hiervoor het Forum.

Delen:
*
*
Laat me per email weten als er nieuwe reacties zijn.
       Je kunt jouw RSS reader gebruiken om reacties te volgen.


Tweaking4All gebruikt de gratis Gravatar dienst voor Avatar weergave.