WordPressの管理画面の外観にてウィジェットを選択すると、テーマによりですがどこにウィジェットを追加可能なのかがわかります。WordPressのデフォルトであるウィジェットやテーマ独自のウィジェットなどあります。ですが、ウィジェットにPHPコードを記述するウィジェットはありません。そこで、プラグインとしてPHP Code Widgetというプラグインがあります。
しかし、中にはできるだけプラグインを使用したくないという方々も一定数いらっしゃいます。そんな方は、function.phpにコードを記述するだけで上記のPHP Code Widgetプラグインと同様にウィジェットにPHPコードの記述が可能になりPHPコードが実行されるようになります。
以下のコードをfunction.phpに記述します。
class PHPCodeWidget extends WP_Widget {
function __construct() {
parent::__construct(
'php_code_widget', // Base ID
'PHPコードウィジェット', // Name
array( 'description' => 'カスタムPHPコードを実行するウィジェット' ) // Args
);
}
function form($instance) {
$code = !empty($instance['code']) ? $instance['code'] : '';
?>
<p>
<label for="<?php echo $this->get_field_id('code'); ?>"><?php _e('PHPコード:'); ?></label>
<textarea class="widefat" id="<?php echo $this->get_field_id('code'); ?>" name="<?php echo $this->get_field_name('code'); ?>" rows="10"><?php echo esc_textarea($code); ?></textarea>
</p>
<?php
}
function update($new_instance, $old_instance) {
$instance = $old_instance;
$instance['code'] = !empty($new_instance['code']) ? $new_instance['code'] : '';
return $instance;
}
function widget($args, $instance) {
echo $args['before_widget'];
if (!empty($instance['code'])) {
ob_start();
eval('?>' . $instance['code']);
$output = ob_get_clean();
echo $output;
}
echo $args['after_widget'];
}
}
function register_php_code_widget() {
register_widget('PHPCodeWidget');
}
add_action('widgets_init', 'register_php_code_widget');
そうしますと以下のようにWordPressの管理画面の外観のウィジェット選択すると、PHPコードウィジェットが選択追加できるようになっています。

このコードは以下サイトを参照させていただきました。詳しくは以下サイトを閲覧することをおすすめします。
なんかすごいですね。Pythonを学ばれているようです。
新着コメント