「本当に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');
?>