• 赤色のリンクは、まだ日本語Codexに存在しないページ・画像です。英語版と併せてご覧ください。(詳細

このWikiはいつでも誰でも編集できます

「ダッシュボードウィジェット API」の版間の差分

提供: WordPress Codex 日本語版
移動先: 案内検索
(用例: の途中まで)
(翻訳済み、div は付けていない)
1行目: 1行目:
{{NeedTrans}}
+
{{CheckTrans}}
 
WordPress 2.7 のリリースで、新しいダッシュボードウィジェット API が導入されました。[[管理パネル/ダッシュボード | 管理画面ダッシュボード]] に新しいウィジェットを追加するのがシンプルになりました。PHP と WordPress [[プラグイン API]] の知識が必要ですが、アクションフックやフィルターフックに精通したプラグイン/テーマ作成者なら数分でできるでしょう。これにより、プラグインを一層使いやすくなるでしょう。
 
WordPress 2.7 のリリースで、新しいダッシュボードウィジェット API が導入されました。[[管理パネル/ダッシュボード | 管理画面ダッシュボード]] に新しいウィジェットを追加するのがシンプルになりました。PHP と WordPress [[プラグイン API]] の知識が必要ですが、アクションフックやフィルターフックに精通したプラグイン/テーマ作成者なら数分でできるでしょう。これにより、プラグインを一層使いやすくなるでしょう。
  
39行目: 39行目:
 
  add_action('wp_dashboard_setup', 'example_add_dashboard_widgets' );
 
  add_action('wp_dashboard_setup', 'example_add_dashboard_widgets' );
  
===Advanced: Forcing your widget to the top===
+
===上級: ウィジェットを一番上にする===
Normally you should just let the users of your plugin put your Dashboard Widget wherever they want by dragging it around. There currently isn't an easy API way to pre-sort the default widgets, meaning your new widget will always be at the bottom of the list. Until sorting is added to the API its a bit complicated to get around this problem.
+
通常は、プラグインの利用者がドラッグして好きな位置にダッシュボードウィジェットを配置できるようにすべきです。デフォルトウィジェットを予め並べるための簡単な API はありません。新しいウィジェットは一番下に配置されます。API にソートが追加されるまでは、この問題を処理するのは相当複雑です。
  
Below is an example hooking function that will try to put your widget before the default ones. It does so by manually altering the internal array of metaboxes (of which dashboard widgets are one type) and putting your widget at the top of the list so it shows first.
+
あなたのウィジェットをデフォルトよりも前に配置する例を以下に示します。metaboxes (ダッシュボードウィジェットもこの 1 つです) の内部配列を手作業で変更して、あなたのウィジェットをリストの先頭にし、最初に表示されるようにします。
  
 
  function example_add_dashboard_widgets() {
 
  function example_add_dashboard_widgets() {
70行目: 70行目:
 
  }  
 
  }  
  
Unfortunately this only works for people who have never re-ordered their widgets. Once a user has done so their existing preferences will override this and they will have to move your widget to the top for it to stay there.
+
残念ながら、この方法は、ウィジェットを並べ替えたことがない場合にのみ動作します。利用者が並べ替えた場合は、利用者の選好が優先されます。あなたのウィジェットを手作業で一番上に移動する必要があります。
  
===Advanced: Removing Dashboard Widgets===
+
===上級: ダッシュボードウィジェットを取り除く===
In some situations, especially on multi-user blogs, it may be useful to completely remove widgets from the interface. Each individual user can, by default, turn off any given widget using the "Screen Options" tab at the top, but if you have a lot of non-technical users it might be nicer for them to not see it at all.
+
ある場合は、特に複数ユーザーでブログを書く場合等は、インターフェースからウィジェットを取り除くことが役立つかもしれません。各ユーザーは、管理画面上部の "表示オプション" タブでウィジェットを表示しなくすることができます。技術に詳しくないユーザーがたくさんいる場合は、そもそも見せないのが好ましいでしょう。
  
At this point (2.7.0) there is no function to easily remove the default dashboard widgets. To remove them you need to manually unset() their items from the general $wp_meta_box array. You can do so inside the wp_dashboard_setup action similar to how we added widgets.
+
現在 (2.7.0) は、デフォルトのダッシュボードウィジェットを取り除く簡単な関数はありません。取り除くには、一般 $wp_meta_box 配列からアイテムを手動で unset() する必要があります。ウィジェットを追加するのと似た方法で wp_dashboard_setup で行います。
  
Here are the names of the meta boxes on the dashboard:<br/>
+
ダッシュボードのメタボックスの名前です。<br/>
Main column<br/>
+
主カラム<br/>
 
$wp_meta_boxes['dashboard']['normal']['core']['dashboard_right_now']<br/>
 
$wp_meta_boxes['dashboard']['normal']['core']['dashboard_right_now']<br/>
 
$wp_meta_boxes['dashboard']['normal']['core']['dashboard_recent_comments']<br/>
 
$wp_meta_boxes['dashboard']['normal']['core']['dashboard_recent_comments']<br/>
84行目: 84行目:
 
$wp_meta_boxes['dashboard']['normal']['core']['dashboard_plugins']<br/>
 
$wp_meta_boxes['dashboard']['normal']['core']['dashboard_plugins']<br/>
  
Side Column<br/>
+
副カラム<br/>
 
$wp_meta_boxes['dashboard']['side']['core']['dashboard_quick_press']<br/>
 
$wp_meta_boxes['dashboard']['side']['core']['dashboard_quick_press']<br/>
 
$wp_meta_boxes['dashboard']['side']['core']['dashboard_recent_drafts']<br/>
 
$wp_meta_boxes['dashboard']['side']['core']['dashboard_recent_drafts']<br/>
90行目: 90行目:
 
$wp_meta_boxes['dashboard']['side']['core']['dashboard_secondary']<br/>
 
$wp_meta_boxes['dashboard']['side']['core']['dashboard_secondary']<br/>
  
To print the list of names in either the normal or side columns, you can use this code (subbing in normal or core for the second position in the array):<br/>
+
主カラムまたは副カラムで名前のリストを表示するには、以下のコードを使用してください(配列の 2 番めで主/副を設定):<br/>
 
<pre>
 
<pre>
 
foreach (array_keys($wp_meta_boxes['dashboard']['normal']['core']) as $name){
 
foreach (array_keys($wp_meta_boxes['dashboard']['normal']['core']) as $name){
100行目: 100行目:
 
</pre>
 
</pre>
  
Here is an example function that removes the quickpress and incomming_links widgets by unsetting their array items.
+
quickpress incomming_links ウィジェットを unset して取り除く例です。
  
 
  // Create the function to use in the action hook
 
  // Create the function to use in the action hook
122行目: 122行目:
 
  add_action('wp_dashboard_setup', 'example_remove_dashboard_widgets' );
 
  add_action('wp_dashboard_setup', 'example_remove_dashboard_widgets' );
  
===Aggregating RSS feeds in the dashboard===
+
===ダッシュボードで RSS フィードを統合する===
Because so many of the default dashboard widgets are designed to aggregate RSS feeds about WordPress development and plugins there is already a lot of work done to make this easier. I don't have time to figure out a full example, but if you need to aggregate RSS in your widget I recommend looking at the way the existing plugins are set up with caching in {{Trac|/wp-admin/includes/dashboard.php}}.
+
多くのデフォルトダッシュボードウィジェットは WordPress の開発とプラグインについての RSS フィードを統合するように設計されているので、簡単に行うために多くの努力がなされています。完全な例を示すことはしませんが、ウィジェットに RSS を統合する必要がある場合は、{{Trac|/wp-admin/includes/dashboard.php}} の既存のプラグインがキャッシュ機能を含めてどのように設計されているかを見ることをおすすめします。
  
 
{{原文|Dashboard Widgets API|81992}} <!--  17:49, 9 January 2010 Thivilla -->
 
{{原文|Dashboard Widgets API|81992}} <!--  17:49, 9 January 2010 Thivilla -->

2010年3月28日 (日) 09:35時点における版

この項目「ダッシュボードウィジェット API」は、翻訳チェック待ちの項目です。加筆、訂正などを通して、Codex ドキュメンテーションにご協力下さい。

WordPress 2.7 のリリースで、新しいダッシュボードウィジェット API が導入されました。 管理画面ダッシュボード に新しいウィジェットを追加するのがシンプルになりました。PHP と WordPress プラグイン API の知識が必要ですが、アクションフックやフィルターフックに精通したプラグイン/テーマ作成者なら数分でできるでしょう。これにより、プラグインを一層使いやすくなるでしょう。

概要

関数

ダッシュボードの追加に必要な主要なツールは wp_add_dashboard_widget() 関数です。

wp_add_dashboard_widget($widget_id, $widget_name, $callback, $control_callback = null)
  • $widget_id - ウィジェットを一意識別するスラッグ。これは css クラス、ウィジェットの配列のキーに使用します。
  • $widget_name - ウィジェットのヘッダに表示される名前。
  • $callback - ウィジェットのコンテンツを表示するように作成した関数の名前。
  • $control_callback - (オプション) ウィジェットオプションフォームの送信を処理し、フォーム要素を表示する関数の名前。

動作

関数を実行するには、適切な動作をフックする必要があります。この場合 'wp_dashboard_setup' です。コアコードは以下の通りです。

do_action( 'wp_dashboard_setup' );

用例

ウィジェットを追加する

ウィジェットのもっとも簡単なアウトラインです。

// ダッシュボードウィジェットにコンテンツを出力する関数を作成する

function example_dashboard_widget_function() {
	// Display whatever it is you want to show
	echo "Hello World, I'm a great Dashboard Widget";
} 

// アクションフックで使用する関数を作成する

function example_add_dashboard_widgets() {
	wp_add_dashboard_widget('example_dashboard_widget', 'Example Dashboard Widget', 'example_dashboard_widget_function');	
} 

// 'wp_dashboard_setup' アクションにフックし、登録する

add_action('wp_dashboard_setup', 'example_add_dashboard_widgets' );

上級: ウィジェットを一番上にする

通常は、プラグインの利用者がドラッグして好きな位置にダッシュボードウィジェットを配置できるようにすべきです。デフォルトウィジェットを予め並べるための簡単な API はありません。新しいウィジェットは一番下に配置されます。API にソートが追加されるまでは、この問題を処理するのは相当複雑です。

あなたのウィジェットをデフォルトよりも前に配置する例を以下に示します。metaboxes (ダッシュボードウィジェットもこの 1 つです) の内部配列を手作業で変更して、あなたのウィジェットをリストの先頭にし、最初に表示されるようにします。

function example_add_dashboard_widgets() {
	wp_add_dashboard_widget('example_dashboard_widget', 'Example Dashboard Widget', 'example_dashboard_widget_function');
	
	// Globalize the metaboxes array, this holds all the widgets for wp-admin

	global $wp_meta_boxes;
	
	// Get the regular dashboard widgets array 
	// (which has our new widget already but at the end)

	$normal_dashboard = $wp_meta_boxes['dashboard']['normal']['core'];
	
	// Backup and delete our new dashbaord widget from the end of the array

	$example_widget_backup = array('example_dashboard_widget' => $normal_dashboard['example_dashboard_widget']);
	unset($normal_dashboard['example_dashboard_widget']);

	// Merge the two arrays together so our widget is at the beginning

	$sorted_dashboard = array_merge($example_widget_backup, $normal_dashboard);

	// Save the sorted array back into the original metaboxes 

	$wp_meta_boxes['dashboard']['normal']['core'] = $sorted_dashboard;
} 

残念ながら、この方法は、ウィジェットを並べ替えたことがない場合にのみ動作します。利用者が並べ替えた場合は、利用者の選好が優先されます。あなたのウィジェットを手作業で一番上に移動する必要があります。

上級: ダッシュボードウィジェットを取り除く

ある場合は、特に複数ユーザーでブログを書く場合等は、インターフェースからウィジェットを取り除くことが役立つかもしれません。各ユーザーは、管理画面上部の "表示オプション" タブでウィジェットを表示しなくすることができます。技術に詳しくないユーザーがたくさんいる場合は、そもそも見せないのが好ましいでしょう。

現在 (2.7.0) は、デフォルトのダッシュボードウィジェットを取り除く簡単な関数はありません。取り除くには、一般 $wp_meta_box 配列からアイテムを手動で unset() する必要があります。ウィジェットを追加するのと似た方法で wp_dashboard_setup で行います。

ダッシュボードのメタボックスの名前です。
主カラム
$wp_meta_boxes['dashboard']['normal']['core']['dashboard_right_now']
$wp_meta_boxes['dashboard']['normal']['core']['dashboard_recent_comments']
$wp_meta_boxes['dashboard']['normal']['core']['dashboard_incoming_links']
$wp_meta_boxes['dashboard']['normal']['core']['dashboard_plugins']

副カラム
$wp_meta_boxes['dashboard']['side']['core']['dashboard_quick_press']
$wp_meta_boxes['dashboard']['side']['core']['dashboard_recent_drafts']
$wp_meta_boxes['dashboard']['side']['core']['dashboard_primary']
$wp_meta_boxes['dashboard']['side']['core']['dashboard_secondary']

主カラムまたは副カラムで名前のリストを表示するには、以下のコードを使用してください(配列の 2 番めで主/副を設定)。:

foreach (array_keys($wp_meta_boxes['dashboard']['normal']['core']) as $name){
		echo ("<p>");
		echo ($name);
		echo("</p>");
		
	}

quickpress と incomming_links ウィジェットを unset して取り除く例です。

// Create the function to use in the action hook

function example_remove_dashboard_widgets() {
	// Globalize the metaboxes array, this holds all the widgets for wp-admin

	global $wp_meta_boxes;

	// Remove the quickpress widget

	unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_quick_press']);

	// Remove the incomming links widget

	unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_incoming_links']);	
} 

// Hoook into the 'wp_dashboard_setup' action to register our function

add_action('wp_dashboard_setup', 'example_remove_dashboard_widgets' );

ダッシュボードで RSS フィードを統合する

多くのデフォルトダッシュボードウィジェットは WordPress の開発とプラグインについての RSS フィードを統合するように設計されているので、簡単に行うために多くの努力がなされています。完全な例を示すことはしませんが、ウィジェットに RSS を統合する必要がある場合は、/wp-admin/includes/dashboard.php の既存のプラグインがキャッシュ機能を含めてどのように設計されているかを見ることをおすすめします。

最新英語版: WordPress Codex » Dashboard Widgets API最新版との差分