Legg til en tilpasset RSS-feed i WordPress Dashboard

Internett er fullt av god ressurs, og det er vanskelig å se på alt. Selvfølgelig er det Twitter for å følge med på tendenser, eller RSS-leserprogramvare, men du er som meg veldig opptatt, det er noen ganger irriterende å ha 20 programvarer åpnet samtidig. Derfor bestemte jeg meg for å bruke WordPress-dashbordet som en global plattform for å få rask tilgang til disse innmatingene. Et eksempel jeg vil dele i dag er hvordan du oppretter en tilpasset RSS-metaboks i WordPress-dashbordet.


Her er det endelige resultatet av det vi skal lage:

add-a-custom-rss-dashboard-Metabox

Trinn 1: Plugin

For å legge til denne metabox må vi opprette en plugin. Så bare opprett en ny mappe kalt “my-dashboard-metaboxes” i wp-content / plugins / og i den nye mappen oppretter du en fil som heter my-dashboard-metaboxes.php. Denne filen vil være den viktigste plugin-filen. Åpne den i hovedredaktøren din. Koden nedenfor er koden som genererer plugin-modulen. Ingenting virkelig komplisert her:

Trinn 2: Registrer Metabox

Nå som vi har en tom plugin (jeg mener en plugin som ikke gjør noe), må vi registrere minst en metaboks som skal vises på WordPress-dashbordet. For å gjøre det, må vi lage en ny funksjon som kobles til “wp_dashboard_setup”Krok. La oss kalle denne funksjonen "rc_mdm_register_widgets ()". Inne i denne funksjonen må vi fortelle WordPress at vi vil legge til en ny metaboks, og dette er målet med "wp_add_dashboard_widget ()”Funksjon. Denne funksjonen godtar fire parametere:

1 - $ widget_id (heltall) (påkrevd) en identifiserende snegle for widgeten din. Dette vil bli brukt som sin css-klasse og dens nøkkel i rekken av widgets.
Standard: Ingen

2 - $ widgetnavn (streng) (påkrevd) dette er navnet som widgeten din vil vise i overskriften.
Standard: Ingen

3 - $ tilbakeringing (streng) (påkrevd) Navnet på en funksjon du oppretter som vil vise det faktiske innholdet i widgeten.
Standard: Ingen

4 - $ control_callback (streng) (valgfritt) Navnet på en funksjon du oppretter som vil håndtere innsending av widgetalternativer (konfigurasjons) -skjemaer, og vil også vise skjemaelementene.

Det som er viktig her er den tredje parameteren, det er den som definerer funksjonene som skal lastes inn i metaboksen. I dette eksemplet kalles det "rc_mdm_create_my_rss_box ()".

/ **
* Registrer alle metabokser i dashbordet
*
* @ tilgang offentlig
* @since 1.0
* @ return ugyldig
* /

funksjon rc_mdm_register_widgets () {
globale $ wp_meta_boxes;

wp_add_dashboard_widget ('widget_freelanceswitch', __ ('My RSS Feeds', 'rc_mdm'), 'rc_mdm_create_my_rss_box');
}
add_action ('wp_dashboard_setup', 'rc_mdm_register_widgets');

Trinn 3: Metabox-innholdet

Hvis du aktiverer plugin-modulen og går til ditt WordPress-dashbord, bør du se en ny tom metaboks. Vi må nå fylle ut innholdet. Viktige ting for denne funksjonen er å inkludere WordPress innebygde “feed.php” -fil for å få lov til å bruke “fetch_feed ()” -funksjonen. Vær oppmerksom på at vi bruker “fetch_feed ()” fordi “fetch_rss ()”, “get_rss ()” og “wp_rss ()” er utdatert. For en gangs skyld inkluderte jeg alle kommentarer i koden direkte, men jeg vil trekke oppmerksomheten til noen fine funksjoner jeg bruker i metabox-funksjonen.

Først av alt er det "FETCH_FEED ()”Funksjon. Denne brukes til å få og analysere fôrinnholdet. Denne funksjonen bruker SimplePie-klasse, slik at du kan dra nytte av nesten alle funksjonene som er inkludert i den.

Vi har da funksjonen “human_time_diff ()” som brukes til å vise tiden som “human_time_diff ()"For eksempel for å vise noe som" 2 timer siden "," 4 dager siden "osv. ... det er en WordPress-funksjon.

Og til slutt har vi “wp_html_excerpt ()”For å forkorte hvert fôrinnhold.

Alle andre funksjoner er velkjente WordPress-funksjoner eller er inkludert i Simple Pie-klassen.

Her er koden:

/ **
* Oppretter RSS-metaboksen
*
* @ tilgang offentlig
* @since 1.0
* @ return ugyldig
* /

funksjon rc_mdm_create_my_rss_box () {

// Få RSS-feed (er)
include_once (ABSPATH. WPINC. '/feed.php');

// Min feeds-liste (legg til dine egne RSS-feeds-nettadresser)
$ my_feeds = matrise (
'Http://feeds.feedburner.com/FSAllJobs',
'Http://www.wphired.com/feed/?post_type=job_listing'
);

// Loop through Feeds
foreach ($ my_feeds som $ feed):

// Få et SimplePie-feedobjekt fra den spesifiserte feedkilden.
$ rss = fetch_feed ($ feed);
if (! is_wp_error ($ rss)): // Kontrollerer at objektet er opprettet riktig
// Finn ut hvor mange totale elementer det er, og velg en grense
$ maxitems = $ rss-> get_item_quantity (3);

// Bygg et utvalg av alle elementene, starter med element 0 (første element).
$ rss_items = $ rss-> get_items (0, $ maxitems);

// Få RSS-tittel
$ rss_title = 'get_permalink (). '"target =" _ blank ">'. strtoupper ($ rss-> get_title ()). '';
slutt om;

// Vis beholderen
ekko '
'; ekko ''. $ Rss_title.'; ekko '
'; // Starter vareliste innen
    stikkord ekko '
      '; // Kontroller elementer if ($ maxitems == 0) { ekko '
    • '.__ (' Ingen vare ',' rc_mdm ').'.
    • '; } annet { // Gå gjennom hvert feedelement og vis hvert element som en hyperkobling. foreach ($ rss_items som $ item): // Uncomment-linjen nedenfor for å vise ikke-menneskelig dato // $ item_date = $ item-> get_date (get_option ('date_format'). '@' .get_option ('time_format')); // Få menneskelig dato (kommenter hvis du vil bruke ikke-menneskelig dato) $ item_date = human_time_diff ($ item-> get_date ('U'), current_time ('timestamp')). ' '.__ (' siden ',' rc_mdm '); // Begynn å vise elementets innhold i en
    • stikkord ekko '
    • '; // opprett en koblingsvare ekko 'get_permalink ()). '"title ="'. $ item_date. '">'; // Få varetittel ekko esc_html ($ item-> get_title ()); ekko ''; // Visningsdato ekko ' '. $ Item_date.
      '; // Få vareinnhold $ content = $ item-> get_content (); // Forkorte innholdet $ content = wp_html_excerpt ($ content, 120). '[...]'; // Vis innhold ekko $ innhold; // Slutt
    • stikkord ekko '
    • '; endforeach; } // Slutt
        stikkord ekko '
'; endforeach; // Slutt foreach-fôr }

På linje 15 er det en matrise der du kan legge så mange innmatinger du vil. Du kan også definere antallet av hvert feedelement som skal vises på linje 27. Til slutt på linje 50 og 54 kan du velge å vise en menneskelig dato eller en normal dato. Det er opp til deg.

Konklusjon

OK, så vi opprettet en enkel metaboks, men du har nå det grunnleggende å lage dine egne metabokser med ditt eget innhold. Du kan også fjerne standard WordPress-metabokser, og ha full forståelse av dashbord-widgeter API, Jeg oppfordrer deg, som alltid, til å se på codex.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me