Snabbtips! 9 Handy WordPress Code-fragment (som du verkligen borde veta!)

Här är några korta men praktiska kodutdrag som kan göra ditt liv som en WordPress-utvecklare lite enklare. Vi kommer att täcka lite av allt, från hur du automatiskt raderar inlägg, hur du snabbt rensar ut en postminnebild, hur du omdirigerar användare när de har loggat in. Öppna ditt textbytesprogram och gör dig redo att lägga till några nya genvägar!

Vi börjar med några enkla linjer.


1. Dölj Front-End Dashboard Bar

Sedan v3.1 har WordPress tillhandahållit en front-end admin-bar för alla användare. Beroende på din avsikt kan detta förringa utseendet på din webbplats. För att inaktivera den, använd funktionen show_admin_bar:

 show_admin_bar (FALSE);

Du kan också inaktivera det här från din användarprofil, men det här är särskilt användbart om du har massor av författare / medlemmar på webbplatsen och du måste inaktivera fältet helt och hållet.


2. Töm papperskorgen automatiskt

Skrotade inlägg kan byggas upp om du glömmer bort dem permanent. Använd den här koden i /wp-config.php för att tömma dina papperskorgen:

 definiera ('EMPTY_TRASH_DAYS', 5);

3. Slå på WordPress Internal Debugger

När du utvecklar måste du se de fel som din kod kasta upp. Tänk på att inte alla fel stannar ett skript från att exekvera men de är fel ändå, och de kan ha märkliga effekter på din andra kod. Så sätt på WordPress-debuggen genom att placera den här i din /wp-config.php:

 definiera ('WP_DEBUG', SANT);

Du kan bli förvånad över vad du ser i sidfoten. Kom ihåg att stänga av felsökning när din webbplats är redo att bli offentlig. Felsökningsinformation kan vara värdefull för hackare.


4. Omdirigera användare efter att de loggat in

När en användare loggar in skickas de normalt direkt till deras instrumentpanel. Det här kanske inte är den upplevelse du vill att dina användare ska ha. Följande kod använder filteret login_redirect för att omdirigera icke-administratörer till hemsidan:

 add_filter ("login_redirect", "subscriber_login_redirect", 10, 3); funktionen subscriber_login_redirect ($ redirect_to, $ request, $ user) if (is_array ($ user-> roller)) om (in_array ('administrator', $ user-> roller)) returnera home_url ('/ wp-admin /' );  returnera home_url (); 

Baserat på användarens roll kan du skicka dem till vilken sida du vill.


5. Visa en miniatyrbild för standardpost

Sedan v2.9 har WordPress lagt fram ett miniatyrbildsinställningsalternativ, precis som bilderna du ser här på wp.tutsplus. På admin-postsidan heter det "Featured Image". Men om du inte har en bild för ditt inlägg kan du helt enkelt ringa en standardbild.

Inom slingan:

 om (has_post_thumbnail ()) the_post_thumbnail ();  annars echo ''; 
  • Kontrollera om inlägget har en miniatyrbild med has_post_thumbnail
  • Om så är fallet, visa det med the_post_thumbnail ()
  • annars skapar du en img-tagg för dig som standard miniatyrbild

Du kan till och med ha en massa standardbilder och välja en slumpmässig


6. Visa "Time Ago" Inläggstid för inlägg och kommentarer

I stället för: Publicerad den 12 oktober 2011 kan vi ha: Postat för 2 dagar sedan.

Som används i slingan:

 echo human_time_diff (get_the_time ('U'), current_time ('timestamp')). ' sedan';
  • human_time_diff () konverterar ett tidstämplingsvärde till en vänlig form
  • get_the_time () får den tid posten gjordes, med "U" -parametern blir värde som Unix-tidsstämpel
  • current_time () får den aktuella tiden, med parametern "timestamp" blir värdet som Unix tidsstämpel

Använd det på kommentarer också:

 echo human_time_diff (get_comment_time ('U'), current_time ('timestamp')). ' sedan';

Eller kanske bara visa det vanliga datumet / tidpunkten för inlägget om mer än en vecka sedan, annars visa tiden sedan:

 $ time_diff = current_time ('timestamp') - get_the_time ('U'); if ($ time_diff < 604800)//seconds in a week = 604800 echo 'Posted ' . human_time_diff(get_the_time('U'), current_time('timestamp')) . ' ago'; else echo 'Posted on ' . get_the_date() . ', ' . get_the_time(); ;

7. Style Post Author Comments Olika

Det är trevligt för användarna att kunna se när författaren till ett inlägg kommenterar inlägget, precis som vi gör här på wp.tutsplus. Allt vi behöver göra är att lägga till en klass i kommentaromslaget och sedan stila det i temat.

För att hitta vilka kommentarer som görs av författaren använder vi den här koden för att mata ut ett klassnamn:

 om ($ comment-> user_id == get_the_author_meta ('ID')) echo '
'; annars echo '
';

Vi jämför användar-ID för kommentaren med postförfattar-ID från get_the_author_meta. Om de matchar, echo vi en klass av författare_kommentar som vi sedan kan stile med css.


8. Visa användar-, post- och kommentarinformation för din WordPress-webbplats

Du kan fråga din WordPress-databas direkt för att visa användbar webbplatsinformation. Lägg den här funktionen i dina funktioner.php och ring den överallt i dina mallfiler med get_site_data ()

 funktion get_site_data () global $ wpdb; $ users = $ wpdb-> get_var ("VÄLJ COUNT (ID) FRÅN $ wpdb-> users"); $ posts = $ wpdb-> get_var ("VÄLJ COUNT (ID) FRÅN $ wpdb-> inlägg WHERE post_status = 'publicera'"); $ comments = $ wpdb-> get_var ("VÄLJ COUNT (comment_ID) FRÅN $ wpdb-> comments"); eko "

'. $ användare. "medlemmar har gjort". $ kommentarer. "kommentarer i". $ inlägg. "inlägg

';

Det här är bättre än att ringa några av de inbyggda WordPress-funktionerna eftersom det räknas alla inläggstyper och bara för närvarande publicerade inlägg.


9. Lägg till en JavaScript-fil korrekt

WordPress ger oss funktionen wp_enqueue_script så att vi kan lägga till skript på ett säkert sätt.

Säg att vi har ett skript dir under vår mall dir, och där har vi ett skript som heter do_stuff.js. Så vi har url_to_template_dir / scripts / do_stuff.js

Låt oss inkludera vårt manus på rätt sätt. Detta måste inkluderas före wp_head-samtalet i din headerfil:

 $ script_url = get_template_directory_uri (). '/Scripts/do_stuff.js'; wp_enqueue_script ('do_stuff', $ script_url);

Här sammanfogar vi vår skriptväg och namnet på utmatningen av WordPress get_template_directory_uri-funktionen. Vi skämtar sedan skriptet genom att tillhandahålla ett handtag (för eventuell senare referens) och webbadressen till vårt skript. WordPress kommer nu att inkludera vårt manus på varje sida.

Den verkliga fördelen för allt detta är att säg att vårt do_stuff-skript var ett jQuery-skript, då skulle vi också behöva ha jQuery laddad.

Nu ingår jQuery som standard i WordPress, och har förregistrerats med handtaget jquery. Så allt vi behöver gör är enqueue vår jQuery, och enqueue våra do_stuff.js, så här:

 wp_enqueue_script ( 'jquery'); $ script_url = get_template_directory_uri (). '/Scripts/do_stuff.js'; wp_enqueue_script ('do_stuff', $ script_url, array ('jquery'));

Notera den tredje parametern till wp_enqueue_script för do_stuff: det berättar WordPress att vårt do_stuff-skript är beroende av filen med handtaget jquery. Detta är viktigt eftersom det betyder att jquery kommer att laddas innan du gör det. Faktum är att du kan ha enqueue uttalanden i omvänd ordning och det spelar ingen roll eftersom det att definiera ett script beroenden tillåter WordPress att sätta skript i korrekt laddningsordning så att de alla arbetar lyckligt tillsammans.