タイトル通り、Wordpressのダッシュボードウィジェットから、つぶやきみたいに更新をするツールを作ってみました。
こんな感じのです。
- よく企業サイトでもトップページなどに使われている、最新情報のリストを表示する方法と組み合わせると、簡単な更新ツールとして使えるそう。
- また、ダッシュボードからTwitterへ投稿するような感じでも使えます。
動作としては、本文とタイトルを同じ文字列にして、(カテゴリをコード内で設定すれば)投稿してくれます。
コードを置いておきます。貼ってあるコードは安全性を考慮していないはずなので、ご注意を。
作りに至った理由
お手伝い先の研究室のサイトデザインを変更することになったときに、研究室での最新情報を1行で更新する、いわゆる「1行更新」を行うのにブログの投稿で行えないかと考えていまして。
まずは標準で備わってるダッシュボード上にあるクイック投稿(QuickPress)を試してみることに。
デフォルトのカテゴリ指定をしておけばそのカテゴリに投稿できるという理想的なウィジェットでしたが、タイトルだけで投稿しようとしたら投稿できない・・・ことが判明しまして。orz
本文とタイトルが同じになるような投稿を叶えてくれそうなプラグインを探してみるものの見つからず。
post.phpに内容を投げるだけ出し、なんとか作れないかとそれらを参考にしてオリジナルで出来ないかと考えだしたところで、(実際はそれでは作れませんでしたが)
理想的な更新方法はTwitterライクかと考えていたので、WordpressのP2テーマを見つけて、それも見ていた所から始めたのがこれです。
機能と動きについて
- ダッシュボードウィジェットで作ってます
- タイトルと本文が同じ文字列となるようにする
- 投稿ボタンを押すと、JSで確認ダイアログを出す
- これポストしたとわかるようにカテゴリとタグを指定してある。 - GUI側からの設定機能は未実装
- 投稿が成功失敗の通知を出す
- 成功の場合は、成功した投稿への編集ページのリンクが現れる
- 投稿自体はフォームの入力した文字列をwp\_insert\_postをそのまま突っ込んでる - のでwp\_insert\_postの仕様に準ずる - htmlタグは受け付けてる。(タイトルにも入るのでお勧めしない。どう改善しようか悩んでる) - 文字数の制限など考えてない。(データベースで設定されてる型より溢れたらどうなるか検証してない)
ソースコード
プラグインとして作らなかったので、テーマのfunction.phpにぶっこんでます。
あまりに整理されてないので見苦しい部分があるかとおもいます、すみません。
[php]
\<?php
function add_newspost_meta_box() {
?>
\<!--widget css -->
\
\
[/php]
苦労話
------
PHPで考えたり、Wordpressの関数を使ったりするのは初めてだったので苦労しました。基本文法を調べつつやっていました。フォームとかPHPもよくわかっていないのでドツボにハマったり。
フォーム、POSTメソッドの送信の意味がよくわかってなくて、POSTデータがいつwp\_insert\_postに使われてるのかがわからなくて数日悩んでたり。これはPHP以前の問題でしたが。
(wp\_insert\_postの戻り値が使いたかったのでしばらく悩んでました。
フォームのPOSTデータは送信先に送られます。PHPファイルなら、それを受け取り処理することができます。POSTデータの送信先で、POSTデータがある場合にwp\_insert\_postを実行させれば、送信先で投稿されて、wp\_insert\_postの値が使えるという至って単純な話を延々と悩んでる話です)
というわけで、やりたいことは出来るようになったところまでで。時間ができたら手直しできたらと。
参考
----
- [ダッシュボードウィジェット API - WordPress Codex
日本語版](http://wpdocs.sourceforge.jp/%E3%83%80%E3%83%83%E3%82%B7%E3%83%A5%E3%83%9C%E3%83%BC%E3%83%89%E3%82%A6%E3%82%A3%E3%82%B8%E3%82%A7%E3%83%83%E3%83%88_API)
- [ゴーゴーウェブマーケット技術BLOG |
Wordpressの外部からポストできる関数wp\_insert\_post()](http://techblog.55w.jp/?p=331)
- [関数リファレンス/wp insert post - WordPress Codex
日本語版](http://wpdocs.sourceforge.jp/%E9%96%A2%E6%95%B0%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9/wp_insert_post)
- [P2 テーマのリニューアル — ブログ —
WordPress.com](http://ja.blog.wordpress.com/2009/11/19/a-new-p2/)
- [WordPress › P2 « Free WordPress
Themes](http://wordpress.org/extend/themes/p2)
Social