ダッシュボード上に、よく使うカテゴリをリスト表示し、カテゴリをクリックすると、そのカテゴリに新規投稿できるプラグインを作成しました。(カテゴリを選択した状態で新規投稿画面が表示される)
通常の動作だと、管理画面左側のメニュー(あるいは右上のボタン)をクリックして新規投稿画面へ移動します。「新規投稿を追加」では、クリックしたカテゴリにチェックされた状態になります。javascript を使用しているので、ブラウザの設定によっては動作しないことがあります。
OSC名古屋で一部の人に見せましたが、本日ソースを公開します。次回の第二回WordBench神戸にてこのプラグインの解説をする予定です。
$selectcategory = new selectcategory;
class selectcategory {
protected $catid ;
protected $js ;
public function __construct() {
add_action( 'admin_head-post-new.php', array(&$this, 'catid_via_get') );
}
public function catid_via_get() {
if ( is_numeric( $_GET['defaultcatid'] )){
$this->catid = (int) $_GET['defaultcatid'];
$this->catidcheck() ;
} else {
$this->catid = 0;
}
}
protected function catidcheck() {
if ( $this->catid ) {
add_action( 'admin_print_footer_scripts', array(&$this, 'output_js') );
}
}
protected function create_js() {
$this->js = <<<EOF
<script>
window.onload= getcatid;
function getcatid(){
document.getElementById('in-category-
EOF;
$this->js .= $this->catid;
$this->js .= <<<EOF
').checked = true;
} </script>
EOF;
}
public function output_js() {
if ( get_cat_name( $this->catid )){
$this->create_js();
echo $this->js;
} else {
wp_die( 'invalid catid' );
}
}
}
function select_category_post() {
$number = 10;
$categories = get_terms('category', array(
'number' => $number,
'hide_empty' => 0,
'orderby' => 'count',
'order' => 'DESC' ));
foreach ( $categories as $catdata ) {
$cat_id = $catdata->term_id;
$name = esc_html( apply_filters('the_category', $catdata->name));
echo '<p><a href="./post-new.php?defaultcatid='.$cat_id.'">';
echo $name;
echo '</a></p>';
}
echo 'Powered by <a href="http://php-web.net/">php-web</a>';
}
function category_post_dashboard_widget() {
wp_add_dashboard_widget('select_category_post', __('Select Category to Post'), 'select_category_post');
}
add_action('wp_dashboard_setup', 'category_post_dashboard_widget' );
プラグインは、カテゴリを選択して投稿からダウンロードすることができます。
※ current_user_can(‘edit_posts’) による投稿権限のチェックを追加予定(上記には未実装)
[…] This post was mentioned on Twitter by 東平洋史, Fumito Mizuno. Fumito Mizuno said: [Blog] ダッシュボードでカテゴリを選択して新規投稿するプラグイン。次回wordbench神戸で解説予定 http://wp.me/pZEIy-aq […]
[…] 内容は、ダッシュボードでカテゴリを選択して新規投稿するプラグインの紹介、またはカスタム投稿タイプの紹介を予定しています。参加者で発表希望の方は、コメントにその旨記載し […]
はじめまして。Crystaと申します。
とても便利なプラグインをありがとうございます。
2点ご質問があるのですが…
1.ダッシュボードの表示が横並びになってしまう
2.表示させたくないカテゴリーを出さない方法
です。
1.について
表示形式を『term_id』にしています。
デモムービーでは縦並びになっていますが、当方ではプラグインを有効にしただけではこの表示にはならないのです。
横並びで、カテゴリー名どうしがくっついて表示されてしまい、どこが区切りかわかりづらい状態です。
縦並びにするにはどのようにしたら良いでしょうか?
2.について
『未分類』など、使用しないカテゴリーを表示しない方法はありますか?
どうぞよろしくお願いいたします。
ダッシュボードでの表示については、スタイルシートで設定できるようにしてあります。デフォルトでは何も指定していません。
プラグインの設定ページのヘルプを参考に、お好きなプロパティを指定してください。
特定カテゴリ除外については、現時点では実装を考えていません。「投稿しないカテゴリがブログに存在する」という状況がちょっと考えにくいので。(CSSで非表示にすることは可能です)
Crystaです。
早速の返信をありがとうございます。
ご指摘のとおり、ダッシュボードのソースを確認し、CSSの欄に、ブロック要素や、割当IDへの[display:none]指定をしたところ、質問の2点とも実現しました。
企業サイトの商品情報登録が楽になるようにという目的で適用しており、上司から「未分類の商品はないので、非表示に」「見づらいから適度にスペースを空けて縦並びに」との指摘があり、困っておりました。
大変助かりました。ありがとうございました。
[…] 懇親会で紹介したプラグインは、ダッシュボードでカテゴリを選択して新規投稿するプラグインです。通常は「新規投稿をクリック」「記事本文を書く」「カテゴリを選ぶ」という順序 […]