「本当に10分でできるのか」と思うかもしれませんが、もちろん環境を用意しておく必要がありますし、それなりの知識も必要です。はい。
NetBeans では PHP の開発ができるので、WordPressをセットアップしてプロジェクトにしてみました。手順としては、ローカルマシンにWordPressをインストールしてから、NetBeansでそのWordPressを参照するようにしました。SELinuxなどを有効にしていると、いくつか考えないといけないことがあります。
apacheで書き込みができるようにとか、メールを送信できるようにとかで、下記のようなコマンドを入力しました。OSはFedoraですから、他のOSでは若干違うかもしれません。
sudo chcon -R system_u:object_r:httpd_sys_content_t:s0 .
sudo chcon -R system_u:object_r:httpd_sys_script_rw_t:s0 wp-content
sudo setsebool -P httpd_can_sendmail=1
sudo chcon -R system_u:object_r:httpd_sys_script_rw_t:s0 wp-content
sudo setsebool -P httpd_can_sendmail=1
SFTPでリモートへファイルを送信することもできたりしますが、簡単のため、今回はローカルホストでWordPressは動かしています。30分ぐらいで全部の作業ができました。結構手軽に環境が用意できます。
NetBeansでファイル新規作成などをすると、所有者がapacheではなくなるので、そのあたりは調整が必要になりそうです。開発環境ですから、httpdも自分用に別途インストールするとか、起動は自分のアカウントで実行というのが良さそうですが、そのあたりは好みに応じてでしょう。
簡単なWidgetをpluginとして追加してみました。解説は特にしませんが、入力したテキストを表示する簡単なプラグインです。wp-content/plugins/simple-widget/simple-widget.phpという名前で作成し、プラグインで有効化すれば、外観のウィジットで使えるようになります。このあたり、WordPressは手軽にいろいろできて楽しいですね。
<?php /* Plugin Name: simple-widget Plugin URI: http://www.sssg.org/blogs/hiro345/archives/7861.html Description: widgetの雛形 Version: 1.0 Author: hiro345 Author URI: http://www.sssg.org/blogs/hiro345/ */ class wp_simple_widget extends WP_Widget { //コンストラクタ function wp_simple_widget() { $widget_ops = array( 'description' => 'simple-widget説明文' ); parent::WP_Widget(false, $name = 'simple-widgetタイトル', $widget_ops); } //管理画面 function form($instance) { $memo = esc_attr($instance['memo']); ?> <p><label for="<?php echo $this->get_field_id('memo'); ?>"> <?php _e('MEMO:'); ?> <input class="widefat" id="<?php echo $this->get_field_id('memo'); ?>" name="<?php echo $this->get_field_name('memo'); ?>" type="text" value="<?php echo $memo; ?>" /> </label></p> <?php } //更新 function update($new_instance, $old_instance) { $instance = $old_instance; $instance['memo'] = strip_tags($new_instance['memo']); return $instance; } //表示 function widget($args, $instance) { // $args → $before_widget, $after_widget, $before_title, $after_title extract($args); $memo = apply_filters('widget_title', $instance['memo']); ?> <?php echo $before_widget; ?> <?php if ($memo) { ?> <h1><?php echo $before_title . 'memo' . $after_title; ?></h1> <p><?php echo $memo; ?></p> <?php } ?> <?php echo $after_widget; ?> <?php } } function wp_simple_widget_init() { register_widget('wp_simple_widget'); } add_action('widgets_init', 'wp_simple_widget_init'); ?>