WordPress как на ладони
Очень Удобный и Быстрый Хостинг для сайтов на WordPress. Пользуюсь сам и вам рекомендую!

Проблема вывода топа

Вывод топа в виджете не работает. Раньше все работало. Помогите плиз

<div class="vidget_s">
<div class="zna">
<ol>
	<li style="list-style-type: none;">
<ol><!--?php $the_query = $query = new WP_Query( array( 'post_type' => array( 'zna'),<br ?--> 'order'=>'DESC',</ol>
</li>
</ol>
<ol>
	<li style="list-style-type: none;">
<ol>'posts_per_page' => '10',</ol>
</li>
</ol>
<ol>
	<li style="list-style-type: none;">
<ol>'meta_key'=>'views',</ol>
</li>
</ol>
<ol>
	<li style="list-style-type: none;">
<ol>'orderby'=>'meta_value_num'</ol>
</li>
</ol>
<ol>
	<li style="list-style-type: none;">
<ol>) ); ?></ol>
</li>
</ol>
<ol>
	<li style="list-style-type: none;">
<ol><!-- Первый --></ol>
</li>
</ol>
<ul>
	<li><img class="mini_vidget_s" src="" alt="Первое место" width="50" height="50" />
<div class="icon"></div>
<div class="top"></div></li>
</ul>
<ol>
	<li style="list-style-type: none;">
<ol><!-- /Первый --></ol>
</li>
</ol>
<!--?php } else if ($i == 2) { ?-->
<!-- Второй -->
<ol>
	<li style="list-style-type: none;">
<ol>
	<li><img class="mini_vidget_s" src="" alt="Второе место" width="50" height="50" />
<div class="icon"></div>
<div class="top"></div></li>
</ol>
</li>
</ol>
<!-- /Второй -->
<!--?php } else if ($i == 3) { ?-->
<!-- Третий -->
<ol>
	<li style="list-style-type: none;">
<ol>
	<li><img class="mini_vidget_s" src="" alt="Третье место" width="50" height="50" />
<div class="icon"></div>
<div class="top"></div></li>
</ol>
</li>
</ol>
<!-- /Третий -->

<!--?php } else {?-->
<!-- Остальные -->
<div class="top">
<ul>
	<li>
<div class="mini"></div>
<div class="top"></div></li>
</ul>
</div>
<!-- Остальные -->

<!--?php } endwhile; ?-->
<!--?php endif; ?-->

</div>
</div>
Заметки к вопросу:
Maestro 5.6 лет назад

Здравствуйте, полагаю это часть кода? Где дели while? Где дели if? Весь код в студию)
$the_query вы присвоили $query и потом делаете запрос с параметрами в запросе, какой то бред.

Вот так нельзя

<ol>'orderby'=>'meta_value_num'</ol>

Нужно вот так

<ol><?php 'orderby'=>'meta_value_num' ?></ol>

И какой смысл такой конструкции?
Еще вопрос почему весь код php закомментирован?

0
Alex
5.6 лет назад
  • 1

    Причина, скорее всего что код редактировали прямо в вордпресс через кривой плагин, либо в каком то редакторе который и поломал нормальный код php файла.

    Рекомендую постараться восстановить данный файл из бекапа.

    Скорее всего было как то так:

    <div class="vidget_s">
    <div class="zna">
    
    <?php $the_query = $query = new WP_Query( array( 'post_type' => array( 'zna'),'order'=>'DESC','posts_per_page' => '10','meta_key'=>'views','orderby'=>'meta_value_num') ); ?>
    <!-- Первый -->
    <img class="mini_vidget_s" src="" alt="Первое место" width="50" height="50" />
    <div class="icon"></div>
    <div class="top"></div>
    <!-- /Первый -->
    
    <?php } else if ($i == 2) { ?>
    <!-- Второй -->
    <img class="mini_vidget_s" src="" alt="Второе место" width="50" height="50" />
    <div class="icon"></div>
    <div class="top"></div>
    <!-- /Второй -->
    <?php } else if ($i == 3) { ?>
    <!-- Третий -->
    <img class="mini_vidget_s" src="" alt="Третье место" width="50" height="50" />
    <div class="icon"></div>
    <div class="top"></div>
    <!-- /Третий -->
    
    <?php } else {?>
    <!-- Остальные -->
    <div class="top">
    <div class="mini"></div>
    <div class="top"></div>
    </div>
    <!-- Остальные -->
    
    <?php } endwhile; ?>
    <?php endif; ?>
    
    </div>
    </div>

    Но тут тоже не все гладко, не хватает части кода, однозначно:

    <img src="" пусто так что картинок не будет

    $i нигде не изменяется

    $the_query = $query = new WP_Query(

    После этого кода, никто нигде не обращяется к переменным ($the_query или $query) что бы вывести данные

    Код сломан, подозреваю что там где редактировали этот файл, он хитрым образом вырезал некоторые блоки, и вставил свой мусор () будет необходимо смотреть весь код и исправлять.

    Alex 5.6 лет назад

    Да вот есть еще сам виджет такого плана: файл лежит в плагинах

    <?php
    /*
    
    */
    
    add_action( 'widgets_init', 'my_first_widget' );
    //Регистрация виджета
    function my_first_widget(){
    register_widget( 'My_First_Widget' );
    }
    /*
    * Добавление нового виджета.
    */
    class My_First_Widget extends WP_Widget{
    //Вызов конструктора
    function __construct(){
    $args = array(
    'name' => 'HTML ',
    'description' => 'Виджет',
    'classname' => 'my-test'
    );
    parent::__construct('my_first', '', $args);
    }
    //Вывод виджета на сайте для посетителей (во Фронт-энде)
    function widget($args, $instance){
    extract($args);
    extract($instance);
    
    $title = apply_filters( 'widget_title', $title );
    $text = apply_filters( 'widget_text', $text );
    
    echo $before_widget;
    echo $before_title . $title . $after_title;
    echo "<div>$text</div>";
    echo $after_widget;
    }
    //Админ-часть виджета (Бек-энд)
    function form($instance){
    extract($instance);
    ?>
    
    <p>
    <label for="<?php echo $this->get_field_id('title') ?>">Заголовок:</label>
    <input type="text" name="<?php echo $this->get_field_name('title') ?>" id="<?php echo $this->get_field_id('title') ?>" value="<?php if( isset($title) ) echo esc_attr( $title ); ?>" class="widefat">
    </p>
    
    <p>
    <label for="<?php echo $this->get_field_id('text') ?>">Текст:</label>
    <textarea class="widefat" name="<?php echo $this->get_field_name('text') ?>" id="<?php echo $this->get_field_id('text') ?>" cols="20" rows="5"><?php if( isset($text) ) echo esc_attr( $text ); ?></textarea>
    </p>
    
    <?php
    }
    //Сохранение и обновление настроек виджета. Данные очищаются и возвращаются для сохранения в базу данных
    function update($new_instance, $old_instance){
    $new_instance['title'] = !empty($new_instance['title']) ? strip_tags($new_instance['title']) : '';
    return $new_instance;
    }
    }
    anseme 5.6 лет назад

    Найми программиста, тут тебе не помогут.

    Нужен доступ и нужно смотреть весь сайт, тк необходимо понять что где и как работает что бы помочь, а не играть в разгадки ребуса, выковыривая его части...

    Maestro 5.6 лет назад

    Тот виджет который в комментариях выводит заголовок виджета и то что в текстовом поле. Кстати изменения текстового поля не сохраняются. Обратите внимание на:

     <?php
    }
    //Сохранение и обновление настроек виджета. Данные очищаются и возвращаются для сохранения в базу данных
    function update($new_instance, $old_instance){
    $new_instance['title'] = !empty($new_instance['title']) ? strip_tags($new_instance['title']) : '';
    return $new_instance;
    }
    }
    anseme 5.6 лет назад

    Кинули програмера либо наняли не пойми кого за недораха... вот и результат...

    Чую там еще не только поля не сохраняются... там много чего...

    Комментировать
На вопросы могут отвечать только зарегистрированные пользователи. Вход . Регистрация