WordPressダッシュボードでカスタムRSSフィードを追加する

インターネットはすばらしいリソースでいっぱいで、すべてを見ることは困難です。もちろん、傾向やRSSリーダーソフトウェアを監視するTwitterもありますが、私のように非常に忙しいので、同時に20のソフトウェアを開くのは面倒です。そのため、WordPressダッシュボードをグローバルプラットフォームとして使用して、これらのフィードにすばやくアクセスすることにしました。今日共有したい例は、WordPressダッシュボード内にカスタムRSSメタボックスを作成する方法です.


これから作成する最終結果は次のとおりです。

add-a-custom-rss-dashboard-metabox

ステップ1:プラグイン

このメタボックスを追加するには、プラグインを作成する必要があります。そのため、wp-content / plugins /に「my-dashboard-metaboxes」という新しいフォルダーを作成し、新しいフォルダー内にmy-dashboard-metaboxes.phpというファイルを作成します。このファイルがメインのプラグインファイルになります。メインエディターで開きます。以下のコードは、プラグインを生成するコードです。ここでは本当に複雑なことは何もありません。

ステップ2:メタボックスの登録

空のプラグイン(つまり、何もしないプラグイン)ができたので、WordPressダッシュボードに表示するには、少なくともメタボックスを登録する必要があります。そのためには、「」をフックする新しい関数を作成する必要があります。wp_dashboard_setup" 針。この関数を「rc_mdm_register_widgets()」と呼びましょう。この関数内で、新しいメタボックスを追加することをWordPressに通知する必要があります。これが「wp_add_dashboard_widget()" 関数。この関数は4つのパラメーターを受け入れます。

1 – $ widget_id (整数)(必須)ウィジェットの識別スラグ。これは、ウィジェットの配列でそのcssクラスとそのキーとして使用されます.
デフォルト:なし

2 – $ widget_name (文字列)(必須)これはウィジェットが見出しに表示する名前です.
デフォルト:なし

3 – $ callback (文字列)(必須)ウィジェットの実際のコンテンツを表示するために作成する関数の名前.
デフォルト:なし

4 – $ control_callback (文字列)(オプション)ウィジェットオプション(構成)フォームの送信を処理し、フォーム要素も表示する、作成する関数の名前.

ここで重要なのは3番目のパラメーターです。これは、メタボックスに読み込まれる関数を定義するパラメーターです。この例では、「rc_mdm_create_my_rss_box()」と呼ばれています.

/ **
*すべてのダッシュボードメタボックスを登録する
*
* @access public
* @ 1.0以降
* @return void
* /

function rc_mdm_register_widgets(){
グローバル$ 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');

ステップ3:メタボックスのコンテンツ

プラグインをアクティブにしてWordPressダッシュボードに移動すると、新しい空のメタボックスが表示されます。次に、その内容を入力する必要があります。この関数の重要なことは、「fetch_feed()」関数の使用を許可するWordPress組み込み「feed.php」ファイルを含めることです。 「fetch_rss()」、「get_rss()」、「wp_rss()」は非推奨であるため、「fetch_feed()」を使用していることに注意してください。とりあえず、すべてのコメントをコード内に直接含めましたが、metabox関数内で使用しているいくつかの優れた機能に注目したいと思います.

まず、「fetch_feed()" 関数。これは、フィードのコンテンツを取得して解析するために使用されます。この関数は SimplePieクラス, それに含まれるほぼすべての機能を利用できます.

次に、「human_time_diff()」関数を使用して、時間を「human_time_diff()「たとえば、「2時間前」、「4日前」などを表示するには、これはWordPressの機能です.

そして最後に「wp_html_excerpt()」を使用して、各フィードのコンテンツを短くします.

他のすべての関数はWordPress関数をよく知っているか、Simple Pieクラスに含まれています.

これがコードです:

/ **
* RSSメタボックスを作成します
*
* @access public
* @ 1.0以降
* @return void
* /

function rc_mdm_create_my_rss_box(){

// RSSフィードを取得します
include_once(ABSPATH。WPINC。 '/feed.php');

//マイフィードリスト(独自のRSSフィードURLを追加します)
$ my_feeds = array(
「http://feeds.feedburner.com/FSAllJobs」,
「http://www.wphired.com/feed/?post_type=job_listing」
);

//フィードをループします
foreach($ my_feeds as $ feed):

//指定されたフィードソースからSimplePieフィードオブジェクトを取得します.
$ rss = fetch_feed($ feed);
if(!is_wp_error($ rss))://オブジェクトが正しく作成されていることを確認します
//アイテムの総数を把握し、制限を選択します
$ maxitems = $ rss-> get_item_quantity(3);

//要素0(最初の要素)から始まるすべての項目の配列を作成します.
$ rss_items = $ rss-> get_items(0、$ maxitems);

// RSSタイトルを取得します
$ rss_title = 'get_permalink()。 '"target =" _ blank ">'。strtoupper($ rss-> get_title())。 '';
endif;

//コンテナを表示します
エコー '
'; エコー ''。$ rss_title。''; エコー '
'; //内で項目リストを開始します
    鬼ごっこ エコー '
      '; //アイテムをチェックします if($ maxitems == 0){ エコー '
    • '.__('アイテムなし '、' rc_mdm ')'.
    • '; } そうしないと { //各フィードアイテムをループして、各アイテムをハイパーリンクとして表示します. foreach($ rss_items as $ item): //下の行のコメントを外して、人間以外の日付を表示します // $ item_date = $ item-> get_date(get_option( 'date_format')。 '@' .get_option( 'time_format')); //人間の日付を取得します(人間以外の日付を使用する場合はコメント) $ item_date = human_time_diff($ item-> get_date( 'U')、current_time( 'timestamp')) ' '.__(' ago '、' rc_mdm '); //アイテムのコンテンツを
    • 鬼ごっこ エコー '
    • '; //アイテムのリンクを作成します エコー 'get_permalink())。 '"title ="'。$ item_date。 '">'; //アイテムのタイトルを取得します echo esc_html($ item-> get_title()); エコー ''; //日付を表示します エコー ' '。$ item_date。'
      '; //アイテムのコンテンツを取得します $ content = $ item-> get_content(); //コンテンツを短くする $ content = wp_html_excerpt($ content、120)。 '[...]'; //コンテンツを表示します echo $ content; // 終わり
    • 鬼ごっこ エコー '
    • '; endforeach; } // 終わり
        鬼ごっこ エコー '
'; endforeach; // foreachフィードを終了します }

15行目には、必要なだけフィードを配置できる配列があります。 27行目に表示する各フィードアイテムの数を定義することもできます。最後に50行目と54行目で、人間の日付と通常の日付のどちらを表示するかを選択できます。それはあなた次第です.

結論

さて、シンプルなメタボックスを作成しましたが、これで、独自のコンテンツを使用して独自のメタボックスを作成するための基本ができました。また、デフォルトのWordPressメタボックスを削除して、 ダッシュボードウィジェットAPI, いつものように、 コーデックス.

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