I denne serien tar vi en titt på WordPress-handlinger: En type krok som applikasjonen tilbyr som gjør at vi kan tilpasse kjøringen. I den siste artikkelen så vi på det andre settet med 10 handlinger som gir oss opptil 20 som vi har dekket så langt.
I tråd med ånden i de forrige artiklene skal vi ta en titt på ytterligere 10 handlinger sammen med eksempler på hver.
Med det sagt, la oss fortsette.
manipulering get_posts ()
Før det er behandlet
De pre_get_posts
handling håndterer en av de viktigste spørringsfunksjonene: get_posts ()
.
La oss si at du kjører en filmoversiktblogg, og du trenger posten "Filmer" for å dukke opp i søkeresultatene. Du kan inkludere enhver posttype du vil ha ved hjelp av følgende linjer med kode:
is_main_query ()) if ($ query-> is_search) $ query-> sett ('post_type', array ('post', 'movie')); // Eksempel Kilde: http://codex.wordpress.org/Plugin_API/Action_Reference/pre_get_posts?>
Voilà! Nå vil nettstedets søkeresultater inkludere "Filmer" posttypen i tillegg til vanlige innlegg.
Det er faktisk mange tiltak for innleggsstatusoverganger - draft_to_publish
, new_to_future
, publish_to_private
og så videre. WordPress samler dette settet av handlinger og kaller det $ OLD_STATUS lementære _ $ NEW_STATUS
i Codex.
Men hvis du trenger en handling for å holde øye med alle statusendringer, kan du bruke transition_post_status
handling.
Tenk deg at du kjører en multiforfatterlogg med tre redaktører, og du trenger informasjon om hver innleggsstatusendring. Hvis det er tilfelle, kan du bruke kodestykket nedenfor:
post_type! == 'post') return; $ title = $ post-> post_title; $ til = get_option ('admin_email'); $ subject = 'Poststatus endret'; $ body = "Hei, \ n \ Status for posten \" $ title \ "er endret fra \" $ old_status \ "til \" $ new_status \ ". \ n \ nCheers!"; wp_mail ($ til, $ subject, $ body); ?>
Hvis du trenger å injisere en JavaScript-fil i administrasjonspanelet på nettstedet ditt, vil admin_enqueue_scripts
Handlingen er for deg: Denne praktiske lille handlingen er ansvarlig for enqueuing av skriptene (og stilene) inne i WordPress dashboard.
La oss si at du opprettet en spesiell meta-boks, men du trenger en JavaScript-fil i mappens plugin for å gjøre meta-boksen til å fungere. Hva gjør du? Du skriver ikke ut en tag in your code - you use the code below!
As its name suggests, this useful action is called when a post is saved to the database.
Sometimes, I forget to set a featured image for my posts, although all my posts should have one. While searching for an answer for my problem, I stumbled accross this elegant solution:
$post_id, 'post_status' => 'draft' ) ); add_action( 'save_post', 'wpds_check_thumbnail' ); else delete_transient( 'has_post_thumbnail' ); function admin_notices_example() // check if the transient is set, and display the error message if ( get_transient( 'has_post_thumbnail' ) == 'no' ) echo ''; delete_transient( 'has_post_thumbnail' ); // Example Source: http://wpdevsnippets.com/require-post-thumbnail-uploaded-before-publishing/ ?>You must select a featured image for your post.
A long but awesome example, am I right?
Meta boxes are arguably one of the fundamental reasons WordPress is the most flexible content management system in the world. It's true: You can crate almost anything as a meta box and let your users create post data with them. And the add_meta_boxes
action is the main hook we use to create meta boxes.
We're going through actions and I don't want to digress from the topic, so I'm just going to show you how the action is used: By filling a function with the add_meta_box()
function(s) and hooking it to the add_meta_boxes
action:
[tip]If you want to learn more about creating custom meta boxes, check out this amazing tutorial on this topic written by Christopher Davis.[/tip]
The "At a Glance" section, formerly named "Right Now", is the primary widget of the dashboard of every WordPress installation. With the activity_box_end
action, you can safely play with that area.
Let's say you're a freelance WordPress developer and you want your clients to remember your phone number. With the code snippet below, you can leave a note for them and put your phone number under the "At a Glance" section:
Don't put your personal number, though: You wouldn't want to be called up at 11 p.m. on Saturday.
There are many default widgets that WordPress offer in its core, and the "Meta" widget is one of them. With the help of the wp_meta
action, we can customize the widget any way you like.
Granted, the "Meta" widget isn't the most popular one among WordPress' default widgets, but you can make it more functional and appealing by adding extra lines and links to it, like so:
Follow us on Twitter:' . $twitter_username . ''; ?>
Of course, this is just a cheesy example but hey, it works!
The "dashboard" is the main page of the administration panel of every WordPress installation. With the wp_dashboard_setup
action, you can customize the dashboard any way you like.
If you use Disqus in your comments section (without the official plugin) and want to see latest comments in your dashboard, you can use the code snippet below to add a dashboard widget:
' . '
Endre variablene $ disqus_username
$ NUMBER_OF_COMMENTS
og du er god til å gå!
Åh, en handling for en pluggbar funksjon! WordPress definerer "pluggable funksjoner" som dette:
Disse funksjonene kan erstattes via plugins. Hvis plugins ikke omdefinerer disse funksjonene, vil disse bli brukt i stedet.
Og denne praktiske lille handlingen er en del av pluggen wp_set_current_user
kjernefunksjon, som endrer gjeldende bruker med ID eller navn.
Vi kommer ikke til å endre brukeren nå, men i stedet skal vi dra nytte av handlingen og sjekke evnen til den nåværende brukeren, og deaktiver deretter verktøylinjen hvis brukeren bare er abonnent:
Hvis du trenger ting gjort etter at WordPress er ferdig med å laste inn aktiverte plugins, kan du stole på plugins_loaded
handling.
Den riktige måten å initialisere pluginet ditt og få det til å kjøre, er å hekte hovedfunksjonen til plugins_loaded
handling. Her har vi det enkleste eksemplet i verden:
Dette er litt dummy tekst!'; // Eksempel Kilde: http://www.scratchinginfo.com/common-wordpress-action-hooks-for-plugin-development/?>
Hvis du trenger et bedre eksempel, og jeg er sikker på at du gjør det, bør du definitivt sjekke ut Tom McFarlin's "WordPress Plugin Boilerplate" som har alt du trenger for å bygge et WordPress-plugin med begrepet objektorientert programmering i tankene.
Vi gikk gjennom den tredje sats på 50 handlinger i denne artikkelen. Jeg håper du likte og lærte nye ting fra det. Ser deg i den neste!
Jeg vil også høre tankene dine. Hva synes du om disse handlingene? Legg inn dine kommentarer nedenfor; og hvis du likte artikkelen, ikke glem å dele den!