wordpress テーマ用のカスタム ウィジェットを作成しています。私が持っているコードは、特定の時点で壊れています。
ウィジェットをプラグインとしてパッケージ化したくないので、コードを functions.php ファイルに入れています。
これは私のコードです:
class gmp_widget extends WP_Widget {
function gmp_widget() {
// widget actual processes
$widget_ops = array('classname' => 'gmp_widget', 'description' => __('Example widget that displays a user\'s bio.','gmp-plugin'));
$this->WP_Widget('gmp_widget_bio', __('Bio Widget','gmp-plugin'), $widget_ops);
}
public function form( $instance ) {
// outputs the options form on admin
$defaults = array( 'title' => __('My Bio', 'gmp-plugin'), 'name' => '', 'bio' => '');
$instance = wp_parse_args( (array) $instance, $defaults);
$title = strip_tags($instance['title']);
$name = strip_tags($instance['name']);
$bio = strip_tags($instance['bio']);
<p><?php _e('Title', 'gmp-plugin') ?>: <input class="widefat" name="<?php echo $this->get_field_name('title'); ?>" type="text" value="<?php echo esc_attr($name); ?>"</p>
<p><?php _e('Name', 'gmp-plugin') ?>: <input class="widefat" name="<?php echo $this->get_field_name('name'); ?>" type="text" value="<?php echo esc_attr($name); ?>"</p>
<p><?php _e('Bio', 'gmp-plugin') ?>: <textarea class="widefat" name="<?php echo $this->get_field_name('bio'); ?>" <?php echo esc_attr($title); ?></textarea></p>
}
public function update( $new_instance, $old_instance ) {
// processes widget options to be saved
$instance = array();
$instance['title'] = strip_tags($new_instance['title']);
$instance['name'] = strip_tags($new_instance['name']);
$instance['bio'] = strip_tags($new_instance['bio']);
return $instance;
}
public function widget( $args, $instance ) {
// outputs the content of the widget
extract($args);
echo $before_widget;
$title = apply_filters('widget_title', $instance['title'] );
$name = empty($instance['name']) ? ' ' :
apply_filters('widget_name', $instance['name']);
$bio = empty($instance['bio']) ? ' ' :
apply_filters('widget_bio', $instance['bio']);
if ( !empty( $title ) ) { echo $before_title . $title . $after_title; };
echo '<p>' .__('Name', 'gmp-plugin') .': ' . $name . '</p>';
echo '<p>' .__('Bio', 'gmp-plugin') .': ' . $bio . '</p>';
echo $after_widget;
}
}
関数形式 ($instance) に到達すると、p タグが構文エラーを出していることがわかります。これは、この下のすべてのコードが正しいように見えず、テキスト エディターですべての適切な色が黒になっているためです。どこかに問題がありますが、それが何であるかわかりません。どんな助けでも大歓迎です!前もって感謝します!