Я хочу оживить старую тему WordPress. У этой темы есть некоторые устаревшие функции, поэтому я пытаюсь их разрешить.Конструктор WordPress устарел
Примечание: Вызываемый метод конструктора для WP_Widget в Custom_Recent_Posts является устаревшим, начиная с версии 4.3.0! Вместо этого используйте __construct().
Это говорит мне, что метод конструктор для WP_Widget является устаревшим, так что должна быть эта линия:
$this->WP_Widget('Custom_Recent_Posts', 'Custom Recent Posts', $widget_ops);
Но эта линия кажется хорошо? Я не могу найти, что с этим не так.
Полный сценарий таков:
class Custom_Recent_Posts extends WP_Widget {
function Custom_Recent_Posts() {
$widget_ops = array('classname' => 'Custom_Recent_Posts', 'description' => 'The recent posts with thumbnails');
$this->WP_Widget('Custom_Recent_Posts', 'Custom Recent Posts', $widget_ops);
}
function widget($args, $instance) {
extract($args, EXTR_SKIP);
echo $before_widget;
$items = empty($instance['items']) ? ' ' : apply_filters('widget_title', $instance['items']);
if(!is_numeric($items))
{
$items = 3;
}
if(!empty($items))
{
pp_posts('recent', $items, TRUE);
}
echo $after_widget;
}
function update($new_instance, $old_instance) {
$instance = $old_instance;
$instance['items'] = strip_tags($new_instance['items']);
return $instance;
}
function form($instance) {
$instance = wp_parse_args((array) $instance, array('items' => ''));
$items = strip_tags($instance['items']);
?>
<p><label for="<?php echo $this->get_field_id('items'); ?>">Items (default 3): <input class="widefat" id="<?php echo $this->get_field_id('items'); ?>" name="<?php echo $this->get_field_name('items'); ?>" type="text" value="<?php echo esc_attr($items); ?>" /></label></p>
<?php
}
}
register_widget('Custom_Recent_Posts');
Любая помощь будет большим.
Так что теперь у меня есть это:
class Custom_Recent_Posts extends WP_Widget {
public function __construct() {
$widget_ops = array('classname' => 'Custom_Recent_Posts', 'description' => 'The recent posts with thumbnails');
$this->WP_Widget('Custom_Recent_Posts', 'Custom Recent Posts', $widget_ops);
}
function widget($args, $instance) {
extract($args, EXTR_SKIP);
echo $before_widget;
$items = empty($instance['items']) ? ' ' : apply_filters('widget_title', $instance['items']);
if(!is_numeric($items))
{
$items = 3;
}
if(!empty($items))
{
pp_posts('recent', $items, TRUE);
}
echo $after_widget;
}
function update($new_instance, $old_instance) {
$instance = $old_instance;
$instance['items'] = strip_tags($new_instance['items']);
return $instance;
}
function form($instance) {
$instance = wp_parse_args((array) $instance, array('items' => ''));
$items = strip_tags($instance['items']);
?>
<p><label for="<?php echo $this->get_field_id('items'); ?>">Items (default 3): <input class="widefat" id="<?php echo $this->get_field_id('items'); ?>" name="<?php echo $this->get_field_name('items'); ?>" type="text" value="<?php echo esc_attr($items); ?>" /></label></p>
<?php
}
}
register_widget('Custom_Recent_Posts');
Именование конструктора так же, как класс __deprecated__. Вы пытались найти текст ошибки? –
@u_mulder Так что давая конструктору другое имя, оно решит его? Что вы имеете в виду с текстом ошибки? –