Pagina 1 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 … 


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

 

Donatie Opties


Donaties worden zeer gewaardeerd, maar zijn zeker niet vereist. Donaties worden gebruikt voor het dekken van kosten voor web-hosting en project materialen, en eventueel voor een drankje of een snack. Voor wie al gedoneerd heeft: Hartelijk dank! Het is werkelijk geweldig om te zien dat men onze artikelen en applicaties waardeert.

Reacties


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



Jouw Reactie ...

Vriendelijk verzoek om hier geen lange teksten te plaatsen (zoals source codes, log files of config files). Gebruik daarvoor het Forum.

Deel met anderen:
*
*
Houd me op de hoogte van nieuwe reacties (email).
       Gebruik jouw RSS reader om reacties te volgen.


Tweaking4All uses the free Gravatar service for Avatar display.
Tweaking4All zal nooit jouw email adres met anderen delen.