Maak je eigen shortcodes en meer, met deze 7 WordPress-hacks

Maak je eigen shortcodes en meer, met deze 7 WordPress-hacks / Wordpress en webontwikkeling

Plug-ins vallen me dwars: een lange lijst ervan, elk met zijn eigen hooks en filters en ... eugh. Soms is een eenvoudige oplossing te vinden met slechts een paar regels in uw functions.php het dossier. Hier zijn 10 van onze favorieten.

Let daar op functions.php is een deel van je thema, en daarom zullen alle hacks die je daar plaatst verloren gaan wanneer je van thema verandert. Je moet degenen die je wilt behouden overnemen naar het nieuwe thema - het is niet moeilijk, het is iets om rekening mee te houden als je site plotseling breekt en niet weet waarom. Als je een fout maakt bij het coderen van deze, zul je geconfronteerd worden met een blanco pagina (de ultieme gids om mee om te gaan 500 serverfouten en lege pagina's in WordPress De ultieme gids voor het oplossen van 500 interne serverfouten en lege witte pagina's in Wordpress De ultieme gids voor het oplossen van 500 interne serverfouten en lege witte pagina's in Wordpress Lees meer zal je enkele van de andere manieren vertellen waarop dit kan gebeuren) - dus wees voorzichtig. Kennis van PHP is ook nuttig (hier is onze gids voor beginners voor PHP).

Miniaturen toevoegen aan het beheerdersgebied

Als u alleen maar bezig bent met het toevoegen van postminiatuurfragmenten De complete gids voor aanbevolen miniaturen en beeldformaten in WordPress De complete gids voor aanbevolen miniaturen en beeldformaten In WordPress Read More kan het enorm nuttig zijn om in een oogopslag te zien welke berichten er zijn om een ​​miniatuur toe te voegen - dit fragment voegt een nieuwe kolom toe aan uw beheerdersscherm tijdens het bekijken Alle berichten. U kunt de grootte wijzigen door de variabelen in matrix (100.200) aan te passen, die de maximale breedte en hoogte aangeeft.

 add_filter ('manage_posts_columns', 'posts_columns', 5); add_action ('manage_posts_custom_column', 'posts_custom_columns', 5, 2); function posts_columns ($ defaults) $ defaults ['post_thumbs'] = __ ('Thumbs'); $ standaardwaarden retourneren;  function posts_custom_columns ($ column_name, $ id) if ($ column_name === 'post_thumbs') echo the_post_thumbnail (array (100.200)); 

Je zou moeten eindigen met zoiets als dit:

Maak je eigen shortcode voor JS-fragmenten

Het rechtstreeks inbedden van JavaScript in post-inhoud kan problematisch zijn (maar is mogelijk, zie de TinyMCE-hack later in het artikel), vooral wanneer die fragmenten vaak veranderen, waardoor alle huidige berichten worden verbroken. Als het JavaScript dat u insluit, een kenmerk voor de grootte bevat, kunt u ook problemen ondervinden wanneer het thema verandert en plotseling niets meer past. Of misschien wordt u het beu om altijd hetzelfde te moeten inbedden. Hoe dan ook, een shortcode kan enorm helpen.

Hier is het fragment voor degene die ik heb gemaakt om de wekelijkse chatruimte te embedden, die vertrouwt op de gratis service tlk.io. De shortcode gebruiken babbelen, en krijgt een attribuut van kamer, het bevat de relevante code die naar het juiste adres in de chatroom verwijst - of in dit geval standaard naar een generiek adres “technofilie” kamer.

 functie chatroom ($ atts) extract (shortcode_atts (array ('room' => 'technophilia'), $ atts)); terug '
'; add_shortcode ('chat', 'chatroom');

Dood een shortcode

Als u niet langer een korte code wilt gebruiken, vindt u ze misschien bezaaid in de uitvoer. Deze eenvoudige code zal ze verwijderen, een korte code “schoonmaakster” als je wilt - hoewel het niet werkt op de database, alleen op de uitvoer van de berichtinhoud.

 function shortcode_cleaner () remove_shortcode ('chat'); add_shortcode ('chat', 'my_remove_shortcode');  add_action ('init', 'shortcode_cleaner'); function my_remove_shortcode () return ";

Pak een YouTube-video uit een post uit

Uitgelichte afbeeldingen zijn in versie 2.9 geïntroduceerd om elke post een centraal representatief beeld te geven, maar wat als je bericht meer over de video gaat? Je zou een schermopname kunnen maken en die gebruiken als de afgebeelde afbeelding, of je zou de video kunnen extraheren en in plaats daarvan in plaats van een uitgelichte afbeelding insluiten. Roep deze functie vanuit de lus op om een ​​YouTube-URL terug te krijgen die je kunt doen zoals je wilt.

 functie video_from_post () global $ post; $ return = array (); preg_match ('| | http: //www.youtube.com/watch \? v = ([a-zA-Z0-9 _ \ -] +) |', $ post-> post_content, $ overeenkomsten); $ v = $ overeenkomsten [1]; $ return [0] = $ post; $ return [1] = $ v; return $ return;  

U kunt ook gebruik maken van het volgende fragment dat berichten filtert om YouTube-URL's te verwijderen (aangezien u ze elders zult gebruiken).

 functie remove_youtube ($ content) $ search = '/http:\/\/www\.youtube\.com\/watch\?(.*?)v=([a-zA-Z0-9_\-]+ )(\Si'; $ content = preg_replace ($ search, "", $ content, 1); return $ inhoud;  add_filter ('the_content', 'remove_youtube'); 

Stop met de Visual Editor Stripping HTML

De visuele editor van WordPress - TinyMCE - is geweldig voor de meeste gebruikers en kan uitgebreid worden om nog meer te doen met de TinyMCE Advanced-plug-in Take Control of The WordPress Editor met TinyMCE Advanced Take Control van de WordPress-editor met TinyMCE Advanced Lees meer. Voor degenen die iets minder op hun code willen passen, zal dit kleine fragment TinyMCE ervan weerhouden tags weg te halen door de lijst met geldige elementen uit te breiden, zodat je dingen zoals iFrames kunt insluiten of klassen over elementen kunt specificeren.

 functie fb_change_mce_options ($ initArray) // Door komma's gescheiden string van uitgebreide tags $ ext = 'pre [id | naam | class | style | lang | escaped], iframe [align | longdesc | naam | width | height | frameborder | scrolling | marginheight | marginwidth | src] '; if (isset ($ initArray ['extended_valid_elements'])) $ initArray ['extended_valid_elements']. = ','. $ Ext;  else $ initArray ['extended_valid_elements'] = $ ext;  $ initArray ['verify_html'] = false; return $ initArray;  add_filter ('tiny_mce_before_init', 'fb_change_mce_options'); 

Ten slotte voorkomt deze dat JavaScript wordt verwijderd, maar houd er rekening mee dat dit een groot beveiligingslek vormt in omgevingen met meerdere auteurs.

 functie disable_kses_content () remove_filter ('content_save_pre', 'wp_filter_post_kses');  add_action ('init', 'disable_kses_content', 20); 

Gratis Thumbnailer voor websites

WordPress.com biedt een weinig bekende website thumbnailingservice - dat wil zeggen, je kunt het de URL van een webpagina vertellen, en het zal een miniatuurafbeelding van die website genereren en weergeven. Voeg het volgende fragment toe om een ​​te maken “schermafdruk” korte code, en gebruik het door een URL zoals te omringen [Schermafdruk] // www.makeuseof.com [/ schermafdruk]. Gebruik kenmerken om de breedte of hoogte op te heffen en pas de HTML-uitvoer aan zoals u dat wilt. Thumbnails worden in de cache opgeslagen, maar het kan even duren om deze in eerste instantie te genereren.

 function websitethumbnails ($ atts, $ content = null) extract (shortcode_atts (array ("snap" => 'http://s.wordpress.com/mshots/v1/', "alt" => 'Mijn afbeelding', "w" => '600', // breedte "h" => '350' // hoogte), $ atts)); $ img = ''. $ alt. ''; return $ img;  add_shortcode ("webthumb", "websitethumbnails"); 

Aanbevolen thumbnails toevoegen aan RSS-feeds

De volgende code zal zowel een fragment of volledige RSS-feed aanpassen om de aanbevolen thumbnail te bevatten. U kunt ook zien hoe we aan het einde van elk item een ​​standaardlink hebben toegevoegd, die terug linkt naar de volledige post. U kunt dit natuurlijk wijzigen in alles wat u maar wilt, zoals sommige deelknoppen.

 functie excerpt_thumbnail_feeds ($ content) global $ post; if (has_post_thumbnail ($ post-> ID)) $ content = '
'. get_the_post_thumbnail ($ post-> ID, 'featured'). '
'. rss_the_excerpt ($ post-> ID, 100); $ content. = "

Lees het volledige artikel: ID). ""> "Get_the_title ($ post-> ID)."

"; return $ content; add_filter (" the_excerpt_rss "," excerpt_thumbnail_feeds "); // toon berichtminiaturen in feeds functie full_thumbnail_feeds ($ content) global $ post; if (has_post_thumbnail ($ post-> ID)) $ inhoud = '
'. get_the_post_thumbnail ($ post-> ID, 'featured'). '
'. $ Inhoud; $ content. = "

Lees het volledige artikel: ID). ""> "Get_the_title ($ post-> ID)."

"; return $ content; add_filter (" the_content_rss "," full_thumbnail_feeds”);

Zie - er is ontzettend veel dat je kunt doen zonder plug-ins, en dit krabt alleen maar aan het oppervlak. Als je meer wilt, bekijk dan mijn lijst met IFTTT-recepten voor WordPress 5 Verbazingwekkende IFTTT-recepten voor WordPress-gebruikers 5 Verbluffende IFTTT-recepten voor WordPress-gebruikers IFTTT is het favoriete automatiseringshulpmiddel van de gebruiker; en WordPress is het Zwitserse zakmes van de ultieme blogger. Stel je eens voor wat voor wereldoverheersing je zou kunnen bereiken door de twee te combineren! Lees meer of bezoek WPSnipp - een site met meer dan 600 gecategoriseerde fragmenten voor fragmenten.

Ontdek meer over: Wordpress.