Sådan tilføjes et tilpasset RSS-feed i WordPress Dashboard

Tilføj et tilpasset RSS-feed i WordPress Dashboard

Internettet er fuld af stor ressource, og det er svært at se på alt. Der er selvfølgelig Twitter for at holde øje med tendenser eller RSS-læser-software, men du er som mig meget travlt, det er undertiden irriterende at have 20 softwares åbnet på samme tid. Derfor besluttede jeg at bruge mit WordPress-dashboard som en global platform for at få hurtig adgang til disse feeds. Et eksempel, jeg vil dele i dag, er, hvordan man opretter en tilpasset RSS-metabox i WordPress-instrumentbrættet.


Her er det endelige resultat af, hvad vi vil oprette:

add-en-custom-rss-dashboard-METABOX

Trin 1: Plugin

For at tilføje denne metabox er vi nødt til at oprette et plugin. Så opret blot en ny mappe kaldet “my-dashboard-metaboxes” i wp-content / plugins / og inden for den nye mappe oprettes en fil kaldet my-dashboard-metaboxes.php. Denne fil vil være den vigtigste plugin-fil. Åbn det i din hovedredaktør. Koden nedenfor er den kode, der genererer plugin. Intet rigtig kompliceret her:

Trin 2: Registrering af Metabox

Nu hvor vi har et tomt plugin (jeg mener et plugin, der ikke gør noget), er vi nødt til at registrere mindst en metabox, der skal vises på WordPress-instrumentbrættet. For at gøre det, er vi nødt til at oprette en ny funktion, der kobles til "wp_dashboard_setup”Krog. Lad os kalde denne funktion "rc_mdm_register_widgets ()". Inde i denne funktion er vi nødt til at fortælle WordPress, at vi vil tilføje en ny metabox, og dette er målet med "wp_add_dashboard_widget ()”Funktion. Denne funktion accepterer 4 parametre:

1 - $ widget_id (heltal) (påkrævet) en identificerende snegle til din widget. Dette vil blive brugt som dens css-klasse og dets nøgle i matrixen af ​​widgets.
Standard: Ingen

2 - $ widgetnavn (streng) (påkrævet) dette er det navn, din widget viser i sin overskrift.
Standard: Ingen

3 - $ tilbagekald (streng) (påkrævet) Navnet på en funktion, du opretter, der viser det faktiske indhold på din widget.
Standard: Ingen

4 - $ control_callback (streng) (valgfrit) Navnet på en funktion, du opretter, der håndterer indsendelse af widgetindstillinger (konfiguration) -formularer og viser også formelementerne.

Det, der er vigtigt her, er den tredje parameter, det er den, der definerer de funktioner, der skal indlæses i metabox. I dette eksempel kaldes det "rc_mdm_create_my_rss_box ()".

/ **
* Registrer alle metaboxer i instrumentbrættet
*
* @ adgang offentligt
* @since 1.0
* @ tilbagevenden ugyldig
* /

funktion 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');

Trin 3: Metabox-indholdet

Hvis du aktiverer plugin og går til dit WordPress-dashboard, skal du se en ny tom metabox. Vi skal nu udfylde dets indhold. Vigtige ting for denne funktion er at inkludere WordPress indbygget “feed.php” -fil, der skal bruge funktionen “fetch_feed ()”. Bemærk, at vi bruger “fetch_feed ()”, fordi “fetch_rss ()”, “get_rss ()” og “wp_rss ()” er forældede. For en gangs skyld inkluderede jeg alle kommentarer direkte i koden, men jeg vil gerne henlede opmærksomheden på nogle dejlige funktioner, jeg bruger i metabox-funktionen.

Først og fremmest er der "FETCH_FEED ()”Funktion. Denne bruges til at få og analysere feeds indhold. Denne funktion bruger SimplePie-klasse, så du kan drage fordel af næsten alle funktioner, der er inkluderet i det.

Vi har derefter funktionen “human_time_diff ()”, der bruges til at vise tiden som “human_time_diff ()“For eksempel for at vise noget som” 2 timer siden ”,” 4 dage siden ”osv.… Det er en WordPress-funktion.

Og endelig har vi "wp_html_excerpt ()”For at forkorte hvert feedindhold.

Alle andre funktioner er velkendte WordPress-funktioner eller er inkluderet i klassen Simple Pie.

Her er koden:

/ **
* Opretter RSS-metabox
*
* @ adgang offentligt
* @since 1.0
* @ tilbagevenden ugyldig
* /

funktion rc_mdm_create_my_rss_box () {

// Hent RSS-feed (r)
include_once (ABSPATH. WPINC. '/feed.php');

// Min feeds-liste (tilføj dine egne RSS-feeds-webadresser)
$ my_feeds = matrix (
'Http://feeds.feedburner.com/FSAllJobs',
'Http://www.wphired.com/feed/?post_type=job_listing'
);

// Loop gennem feeds
foreach ($ my_feeds som $ feed):

// Hent et SimplePie-feedobjekt fra den specificerede feedkilde.
$ rss = fetch_feed ($ feed);
if (! is_wp_error ($ rss)): // Kontrollerer, at objektet er oprettet korrekt
// Find ud af hvor mange samlede poster der er, og vælg en grænse
$ maxitems = $ rss-> get_item_quantity (3);

// Byg en matrix med alle elementerne, startende med element 0 (første element).
$ rss_items = $ rss-> get_items (0, $ maxitems);

// Få RSS-titel
$ rss_title = 'get_permalink (). '"target =" _ blank ">'. strtoupper ($ rss-> get_title ()). '';
Afslut Hvis;

// Vis beholderen
ekko '
'; ekko ''$ Rss_title.''; ekko '
'; // Start varer, der vises inden for
    tag ekko '
      '; // Kontroller genstande if ($ maxitems == 0) { ekko '
    • '.__ (' Ingen vare ',' rc_mdm ').'.
    • '; } andet { // Gå igennem hvert feed-element, og vis hvert element som et hyperlink. foreach ($ rss_items som $ vare): // Uncomment-linje nedenfor for at vise en ikke-human dato // $ item_date = $ item-> get_date (get_option ('date_format'). '@' .get_option ('time_format')); // Få menneskelig dato (kommenter, hvis du vil bruge ikke-menneskelig dato) $ item_date = human_time_diff ($ item-> get_date ('U'), aktuelle_time ('timestamp')). ' '.__ (' siden ',' rc_mdm '); // Start visning af indhold inden for en
    • tag ekko '
    • '; // Opret vareklink ekko 'get_permalink ()). '"title ="'. $ item_date. '">'; // Hent varetitel echo esc_html ($ item-> get_title ()); ekko ''; // Vis dato ekko ' '$ Item_date.'
      '; // Hent artiklen indhold $ content = $ item-> get_content (); // Forkort indholdet $ indhold = wp_html_excerpt ($ indhold, 120). '[...]'; // Vis indhold ekko $ indhold; // Ende
    • tag ekko '
    • '; endforeach; } // Ende
        tag ekko '
'; endforeach; // Slutt foreach-foder }

På linje 15 er der en matrix, hvor du kan lægge så mange feeds, som du vil. Du kan også definere antallet af hver feed-poster, der skal vises på linje 27. Endelig på linje 50 og 54 kan du vælge at vise en menneskelig dato eller en normal dato. Det er op til dig.

Konklusion

Ok, så vi oprettede en simpel metabox, men du har nu det grundlæggende at oprette dine egne metaboxer med dit eget indhold. Du kan også fjerne standard WordPress-metaboxer og have en fuld forståelse af dashboard-widgets API, Jeg opfordrer dig som altid til at se på codex.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map