Avada WordPress theme shortcodes aanpassen in child-theme
Gebruik je de Avada WordPress theme (fusion builder) met in mijn geval de recent posts slider of de recent post element? En je wilt daar wat extra data toevoegen zoals bijvoorbeeld een ‘lees verder’ link? Zorg dan wel dat de aanpassingen bij een update blijven bestaan.
Je kan dan natuurlijk de aanpassingen in de fusion builder plug-in bestanden doen zoals Avada support adviseerde. Het nadeel is dan wel dat als je de plug-in updated je deze bestanden weer opnieuw moet aanpassen. Gelukkig is er wel een oplossing voor. Je kan de php class in het betreffende bestand kopiëren naar een nieuw bestand en aanpassen.
In mijn oplossing ga ik er wel van uit dat je een child-theme gebruikt anders heeft deze oplossing ook weinig nut.
Stappenplan voor het kopieren van de shortcode class
Volg de onderstaande stappen voor de oplossing:
- Kopieer het betreffende bestand, in mijn geval /wp-content/plugins/fusion-builder/shortcodes/fusion-recent-posts.php
- Plaats de kopie in het actieve child-theme, bijvoorbeeld in de map ‘mijn-child-theme-naam/fusion-builder/’. Door dit bestand in een aparte map te zetten hou je de Avada child-theme overzichtelijk.
- Pas het bestand aan door een aantal zaken te verwijderen. Het enige wat je nodig hebt is de php class bovenin het bestand dat rond regel 5 begint, zoek naar:
/** * Shortcode class. *
tot en met regel 481 -> new FusionSC_RecentPosts();
- Kopieer dat stuk en verwijder de rest, met uitzondering van <?php bovenin het bestand natuurlijk. En plak de class terug in het bestand.
- Nu moet je de eerste regel aanpassen van -> class FusionSC_RecentPosts extends Fusion_Element { naar -> class FusionSC_RecentPosts_new extends FusionSC_RecentPosts {
- Daarna de laatste regel aanpassen van -> new FusionSC_RecentPosts(); naar -> new FusionSC_RecentPosts_new();
- In de functions.php van de Avada child-theme voeg je daarna de volgende code toe. Let op dat het pad in de require_once() verwijst naar de juiste map en het juiste bestand!
// load the fusion builder new shortcode classes add_action( 'init', function() { if( class_exists( 'Fusion_Element' ) ) { require_once('fusion-builder/fusion-recent-posts.php'); } } );
Nu kun je de aanpassingen maken in jouw mijn-child-theme-naam/fusion-builder/fusion-recent-posts.php bestand en zullen deze niet meer verdwijnen na een update van de Avada fusion-builder plug-in. Deze oplossing zou moeten werken voor alle bestanden binnen de fusion-builder/shortcode map. Ik heb tot nu toe dit alleen getest voor de recent-post en de post-slider bestanden en daarin een ‘lees verder’ link toegevoegd.
Een ‘lees verder’ link toevoegen aan Avada WordPress theme
Je kan de ‘lees verder’ knop toevoegen in het nieuwe fusion-recent-posts.php in de child-theme door rond regel 287 te zoeken naar deze code:
if ( 'yes' == $excerpt ) { $content .= fusion_builder_get_post_content( '', 'yes', $excerpt_words, $strip_html ); }
en deze te wijzigen in de volgende code:
if ( 'yes' == $excerpt ) { $content .= fusion_builder_get_post_content( '', 'yes', $excerpt_words, $strip_html ); // add read more link $content .= '<a href="'.get_permalink(get_the_ID()).'"> > Lees verder</a>'; }
Je hebt nu een ‘lees verder’ link er bij gekregen in de publieke weergave van de recent posts module. Dit werkt natuurlijk alleen als je de excerpt weergave in de module aan hebt staan.
Tot slot
Het blijft natuurlijk zo dat je moet oppassen voor een major version update van de Avada fusion builder plug-in. Het kan dus zijn dat je dan misschien wel iets zal moeten aanpassen in jouw child theme fusion builder bestanden, maar in de praktijk komt dit tot nu toe bijna niet voor.
Kun je bovenstaande zaken zelf niet uitvoeren? Neem dan contact op met de WordPress Specialist.