Я все еще довольно новичок-разработчик, поэтому небольшие проблемы, подобные этому, время от времени заставляют меня стоять неподвижно.
Я в основном построил пользовательский плагин для отображения PDF-изображений рядом со ссылкой, которую я знаю очень просто, но моя проблема в том, что текст $ title1 должен быть другого цвета на определенных шаблонах страниц, поэтому я пытаюсь изменить код вывода с условным, но он, похоже, не анализируется в браузере.
код теперь анализируется, если условный только div .menu-widget div выводится на все шаблоны страниц, а не заменяет .white, что позволяет мне стилизовать его с помощью css.
константа IMAGES определена в файле functions.php.
Вот мой код
class donor_pdf_plugin extends WP_Widget { // Constructor function donor_pdf_plugin() { parent::WP_Widget(false, $name = __('Pdf footer description', 'donor_pdf_plugin')); } // Widget form creation function form($instance) { // Check values if($instance) { $link = esc_attr($instance['link']); $link1 = esc_attr($instance['link1']); $link2 = esc_attr($instance['link2']); $link3 = esc_attr($instance['link3']); $title = esc_attr($instance['title']); $title1 = esc_attr($instance['title1']); $title2 = esc_attr($instance['title2']); $title3 = esc_attr($instance['title3']); } else { $link = ''; $link1 = ''; $link2 = ''; $link3 = ''; $title = ''; $title1 = ''; $title2 = ''; $title3 = ''; } ?> <p> <label for="<?php echo $this->get_field_id('link'); ?>"><?php _e('Menu link', 'wp_widget_plugin'); ?></label> <input class="widefat" id="<?php echo $this->get_field_id('link'); ?>" name="<?php echo $this->get_field_name('link'); ?>" type="text" value="<?php echo $link; ?>" /> </p> <p> <label for="<?php echo $this->get_field_id('link1'); ?>"><?php _e('Menu link1', 'wp_widget_plugin'); ?></label> <input class="widefat" id="<?php echo $this->get_field_id('link1'); ?>" name="<?php echo $this->get_field_name('link1'); ?>" type="text" value="<?php echo $link1; ?>" /> </p> <p> <label for="<?php echo $this->get_field_id('link2'); ?>"><?php _e('Menu link2', 'wp_widget_plugin'); ?></label> <input class="widefat" id="<?php echo $this->get_field_id('link2'); ?>" name="<?php echo $this->get_field_name('link2'); ?>" type="text" value="<?php echo $link2; ?>" /> </p> <p> <label for="<?php echo $this->get_field_id('link3'); ?>"><?php _e('Menu link3', 'wp_widget_plugin'); ?></label> <input class="widefat" id="<?php echo $this->get_field_id('link3'); ?>" name="<?php echo $this->get_field_name('link3'); ?>" type="text" value="<?php echo $link3; ?>" /> </p> <p> <label for="<?php echo $this->get_field_id('title'); ?>"><?php _e('Menu title', 'wp_widget_plugin'); ?></label> <input class="widefat" id="<?php echo $this->get_field_id('title'); ?>" name="<?php echo $this->get_field_name('title'); ?>" type="text" value="<?php echo $title; ?>" /> </p> <p> <label for="<?php echo $this->get_field_id('title1'); ?>"><?php _e('Menu title1', 'wp_widget_plugin'); ?></label> <input class="widefat" id="<?php echo $this->get_field_id('title1'); ?>" name="<?php echo $this->get_field_name('title1'); ?>" type="text" value="<?php echo $title1; ?>" /> </p> <p> <label for="<?php echo $this->get_field_id('title2'); ?>"><?php _e('Menu title2', 'wp_widget_plugin'); ?></label> <input class="widefat" id="<?php echo $this->get_field_id('title2'); ?>" name="<?php echo $this->get_field_name('title2'); ?>" type="text" value="<?php echo $title2; ?>" /> </p> <p> <label for="<?php echo $this->get_field_id('title3'); ?>"><?php _e('Menu title3', 'wp_widget_plugin'); ?></label> <input class="widefat" id="<?php echo $this->get_field_id('title3'); ?>" name="<?php echo $this->get_field_name('title3'); ?>" type="text" value="<?php echo $title3; ?>" /> </p> <?php // end of widget form creation ?> <?php } // Widget update function update($new_instance, $old_instance) { $instance = $old_instance; // Fields $instance['link'] = strip_tags($new_instance['link']); $instance['link1'] = strip_tags($new_instance['link1']); $instance['link2'] = strip_tags($new_instance['link2']); $instance['link3'] = strip_tags($new_instance['link3']); $instance['title'] = strip_tags($new_instance['title']); $instance['title1'] = strip_tags($new_instance['title1']); $instance['title2'] = strip_tags($new_instance['title2']); $instance['title3'] = strip_tags($new_instance['title3']); return $instance; } // Widget display function widget($args, $instance) { extract($args); $link = $instance['link']; $link1 = $instance['link1']; $link2 = $instance['link2']; $link3 = $instance['link3']; $title = $instance['title']; $title1 = $instance['title1']; $title2 = $instance['title2']; $title3 = $instance['title3']; if(!is_home()) { echo "<div class=\"menu-widget\"> <p><a href=\"$link\"><img src=\"" . IMAGES . "/pdf.png\"/><span class=\"pdf-description\"> $title</a></p> <p><a href=\"$link1\"><img src=\"" . IMAGES . "/pdf.png\"/><span class=\"pdf-description\">$title1</span></a></p> <p><a href=\"$link2\"><img src=\"" . IMAGES . "/pdf.png\"/><span class=\"pdf-description\">$title2</a></p> <p><a href=\"$link3\"><img src=\"" . IMAGES . "/pdf.png\"/><span class=\"pdf-description\">$title3</a></p> </div>"; } else { echo "<div class=\"white\"> <p><a href=\"$link\"><img src=\"" . IMAGES . "/pdf.png\"/><span class=\"pdf-description\"> $title</a></p> <p><a href=\"$link1\"><img src=\"" . IMAGES . "/pdf.png\"/><span class=\"pdf-description\">$title1</span></a></p> <p><a href=\"$link2\"><img src=\"" . IMAGES . "/pdf.png\"/><span class=\"pdf-description\">$title2</a></p> <p><a href=\"$link3\"><img src=\"" . IMAGES . "/pdf.png\"/><span class=\"pdf-description\">$title3</a></p> </div>"; } } } // Register widget add_action('widgets_init', create_function('', 'return register_widget("donor_pdf_plugin");')); ?>
код, который не был проанализирован, – это бит.
} else { echo "<div class=\"white\"> <p><a href=\"$link\"><img src=\"" . IMAGES . "/pdf.png\"/><span class=\"pdf-description\"> $title</a></p> <p><a href=\"$link1\"><img src=\"" . IMAGES . "/pdf.png\"/><span class=\"pdf-description\">$title1</span></a></p> <p><a href=\"$link2\"><img src=\"" . IMAGES . "/pdf.png\"/><span class=\"pdf-description\">$title2</a></p> <p><a href=\"$link3\"><img src=\"" . IMAGES . "/pdf.png\"/><span class=\"pdf-description\">$title3</a></p> </div>"; }
Вы не ошибаетесь, скорее всего, единственная проблема заключается в том, что вы используете is_home()
когда вам нужна is_front_page
.
Однако, просто для подсказки, я хочу показать, как ваш код может быть скомплектован:
class donor_pdf_plugin extends WP_Widget { static $fields = array(); // Constructor function donor_pdf_plugin() { self::$fields = array( 'link' => __('Menu link', 'wp_widget_plugin'), 'link1' => __('Menu link 1', 'wp_widget_plugin'), 'link2' => __('Menu link 2', 'wp_widget_plugin'), 'link3' => __('Menu link 3', 'wp_widget_plugin'), 'title' => __('Menu title', 'wp_widget_plugin'), 'title1' => __('Menu title 1', 'wp_widget_plugin'), 'title2' => __('Menu title 2', 'wp_widget_plugin'), 'title3' => __('Menu title 3', 'wp_widget_plugin'), ); parent::WP_Widget(false, $name = __('Pdf footer description', 'donor_pdf_plugin')); } // Widget form creation function form($instance) { foreach ( self::$fields as $field => $label) { $value = isset($instance[$field]) ? esc_attr($instance[$field]) : ''; $id = $this->get_field_id($field); printf( '<p><label for="%s">%s</label>', $id, esc_html($label) ); $format = '<input class="widefat" id="%s" name="%s" type="text" value="%s"/></p>'; printf( $format, $id, $this->get_field_name($field), esc_attr($value) ); } } // Widget update function update($new_instance, $old_instance) { return array_map('sanitize_text_field', $new_instance); } // Widget display function widget($args, $instance) { $class = is_front_page() ? 'white' : 'menu-widget'; printf('<div class="%s">', $class); $format = '<p><a href="%s"><img src="%s"/><span class="pdf-description">%s</a></p>'; $icon = IMAGES . '/pdf.png'; for ($i=0; $i<4; $i++) { $u = $i == 0 ? '' : $i; if ( empty($instance['link' . $u]) || empty($instance['title' . $u]) ) continue; printf($format, esc_url($instance['link' . $u]), $icon, $instance['title' . $u]); } echo '</div>'; } }