Hur man lägger till ett anpassat RSS-flöde i WordPress Dashboard

Lägg till ett anpassat RSS-flöde i WordPress Dashboard

Internet är fullt av bra resurser och det är svårt att titta på allt. Naturligtvis finns det Twitter för att hålla ett öga på tendenser, eller RSS-läsares programvara, men du är som mig väldigt upptagen, det är ibland irriterande att ha 20 programvaror öppnade samtidigt. Det är därför jag bestämde mig för att använda min WordPress-instrumentpanel som en global plattform för att få en snabb åtkomst till dessa flöden. Ett exempel jag vill dela idag är hur man skapar en anpassad RSS-metabox i WordPress-instrumentpanelen.


Här är det slutliga resultatet av vad vi ska skapa:

Add-a-custom-rss-instrumentpanel-Metabox

Steg 1: Plugin

För att lägga till denna metabox måste vi skapa ett plugin. Så, helt enkelt skapa en ny mapp som heter “my-dashboard-metaboxes” i wp-content / plugins / och i den nya mappen skapa en fil som heter my-dashboard-metaboxes.php. Denna fil kommer att vara den huvudsakliga plugin-filen. Öppna den i din huvudredaktör. Koden nedan är koden som genererar plugin. Ingenting riktigt komplicerat här:

Steg 2: Registrera Metabox

Nu när vi har ett tomt plugin (jag menar ett plugin som inte gör någonting) måste vi registrera åtminstone en metabox som ska visas på WordPress-instrumentpanelen. För att göra det måste vi skapa en ny funktion som ansluter till "wp_dashboard_setup”Krok. Låt oss kalla den här funktionen "rc_mdm_register_widgets ()". Inuti den här funktionen måste vi berätta WordPress att vi vill lägga till en ny metabox, och detta är syftet med "wp_add_dashboard_widget ()”Funktion. Denna funktion accepterar fyra parametrar:

1 - $ widget_id (heltal) (krävs) en identifierande snigel för din widget. Detta kommer att användas som dess css-klass och dess nyckel i matrisen av widgetar.
Standard: Ingen

2 - $ widgetnamn (sträng) (obligatoriskt) detta är namnet som din widget kommer att visa i sin rubrik.
Standard: Ingen

3 - $ återuppringning (sträng) (obligatoriskt) Namnet på en funktion som du skapar som visar det faktiska innehållet i din widget.
Standard: Ingen

4 - $ control_callback (sträng) (valfritt) Namnet på en funktion som du skapar som kommer att hantera inlämning av widgetalternativ (konfigurations) -formulär och visar också formelement.

Det som är viktigt här är den tredje parametern, det är den som definierar funktionerna som kommer att laddas i metaboxen. I det här exemplet kallas det "rc_mdm_create_my_rss_box ()".

/ **
* Registrera alla metaboxar i instrumentpanelen
*
* @ tillgång offentligt
* @since 1.0
* @ return ogiltig
* /

funktion rc_mdm_register_widgets () {
globala $ 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');

Steg 3: Metabox-innehållet

Om du aktiverar plugin och går till din WordPress-instrumentpanel bör du se en ny tom metabox. Vi måste nu fylla i innehållet. Viktiga saker för denna funktion är att inkludera WordPress-inbyggda “feed.php” -filen för att kunna använda funktionen “fetch_feed ()”. Observera att vi använder "fetch_feed ()" eftersom "fetch_rss ()", "get_rss ()" och "wp_rss ()" är avskrivna. För en gångs gång inkluderade jag alla kommentarer i koden direkt men jag vill uppmärksamma några fina funktioner som jag använder i metaboxfunktionen.

Först och främst finns det "fetch_feed ()”Funktion. Den här används för att få och analysera flödesinnehållet. Denna funktion använder SimplePie klass, så du kan dra fördel av nästan alla funktioner som ingår i den.

Vi har sedan funktionen "human_time_diff ()" som används för att visa tiden som "human_time_diff ()", Till exempel för att visa något som" 2 timmar sedan "," för 4 dagar sedan "osv ... det är en WordPress-funktion.

Och slutligen har vi "wp_html_excerpt ()”För att förkorta varje foderinnehåll.

Alla andra funktioner är välkända WordPress-funktioner eller ingår i klassen Simple Pie.

Här är koden:

/ **
* Skapar RSS-metabox
*
* @ tillgång offentligt
* @since 1.0
* @ return ogiltig
* /

funktion rc_mdm_create_my_rss_box () {

// Få RSS-flöden
include_once (ABSPATH. WPINC. '/feed.php');

// Min flödeslista (lägg till dina egna RSS-flödesadresser)
$ my_feeds = array (
'Http://feeds.feedburner.com/FSAllJobs',
'Http://www.wphired.com/feed/?post_type=job_listing'
);

// Loop through Feeds
förhand ($ my_feeds som $ feed):

// Hämta ett SimplePie-flödesobjekt från den angivna matningskällan.
$ rss = fetch_feed ($ feed);
if (! is_wp_error ($ rss)): // Kontrollerar att objektet är rätt skapat
// Ta reda på hur många totala objekt det finns och välj en gräns
$ maxitems = $ rss-> get_item_quantity (3);

// Bygg ett array av alla objekt, börjar med element 0 (första elementet).
$ rss_items = $ rss-> get_items (0, $ maxitems);

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

// Visa behållaren
echo '
'; echo ''$ Rss_title.''; echo '
'; // Startar artiklar som listas inom
    märka echo '
      '; // Kontrollera artiklar if ($ maxitems == 0) { echo '
    • '.__ (' Ingen artikel ',' rc_mdm ').'.
    • '; } annat { // Gå igenom varje matningspost och visa varje objekt som en hyperlänk. förhand ($ rss_items som $ objekt): // Uncomment-rad nedan för att visa datum som inte är mänskligt // $ item_date = $ item-> get_date (get_option ('date_format'). '@' .get_option ('time_format')); // Få mänskligt datum (kommentera om du vill använda icke-mänskligt datum) $ item_date = human_time_diff ($ item-> get_date ('U'), current_time ('timestamp')). ' '.__ (' sedan ',' rc_mdm '); // Börja visa objektets innehåll inom a
    • märka echo '
    • '; // skapa objektlänk echo 'get_permalink ()). '"title ="'. $ item_date. '">'; // Få artikelnamn echo esc_html ($ item-> get_title ()); echo ''; // Visa datum echo ' '$ Item_date.'
      '; // Hämta artikelinnehåll $ innehåll = $ artikel-> get_content (); // Förkorta innehållet $ content = wp_html_excerpt ($ content, 120). '[...]'; // Visa innehåll echo $ innehåll; // Slutet
    • märka echo '
    • '; endforeach; } // Slutet
        märka echo '
'; endforeach; // Slut förmatningsfoder }

På rad 15 finns det en matris där du kan lägga så många flöden du vill. Du kan också definiera antalet varje foderobjekt som ska visas på rad 27. Slutligen på rad 50 och 54 kan du välja att visa ett mänskligt datum eller ett normalt datum. Det är upp till dig.

Slutsats

Okej, så vi skapade en enkel metabox, men du har nu grunderna för att skapa dina egna metaboxar med ditt eget innehåll. Du kan också ta bort standard WordPress-metaboxar och ha en fullständig förståelse av dashboard-widgetar API, Jag uppmuntrar dig som alltid att titta på kodex.

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