X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость ( Вход | Регистрация )

Открыть тему
Тема закрыта
> Wordpress, get_posts
mmkulikov
mmkulikov
Topic Starter сообщение 8.4.2015, 19:22; Ответить: mmkulikov
Сообщение #1


Старожил
******

Группа: Active User
Сообщений: 2116
Регистрация: 21.9.2012
Из: СССР
Поблагодарили: 610 раз
Репутация:   70  


Есть спецы по ВП?
Пол дня что-то туплю :pionertrava:
После вставки кода (см.под спойлером) ломается основной цикл (похоже начинает выводит тоже, что и этот
дополнительный, только с пагинацией как у основного)
Причем убирал(комментировал) почти весь код, для "поломки"
основного цикла достаточно одной "таблэтки" $posts = get_posts( $args );
Мозг закипает, ткините, если кому не лень, в чем "прокололся"?

Развернуть/Свернуть
Код
    <div id="left-sidebar">
        <h3>Афиша</h3>
        <?php
        global $post;
        $tmp_post = $post;

        $args = array( 'suppress_filters' => false, 'cat' => 24, 'posts_per_page' => 20 );
        $posts = get_posts( $args );
        foreach( $posts as $post ){
            setup_postdata($post);
            ?>
            <article id="post-<?php the_ID(); ?>" rel="<? the_permalink();?>">
                <a href="<?php the_permalink(); ?>" class="thumb-link"><?php the_post_thumbnail( array(135,100) ); ?></a>
                <div style="max-width: 330px; max-height: 100px; overflow: hidden; float: left;">
                    <h2 class="blog-title" style="width:100%; margin:4px 0px; clear: none; font-size: 16px;"><a href="<? the_permalink();?>" title="<? the_title();?>"><? the_title();?></a></h2>
                    <header class="entry-header entry-meta">
                        <?php thinkup_input_blogdate(); ?>
                    </header><!-- .entry-header -->

                    <?php the_excerpt(); ?>
                </div>

                <div style="clear: both;"></div>
            </article>
            <?php
        }
        wp_reset_postdata();
        $post = $tmp_post;
        ?>
    </div>


Есть еще один "нюанс"
Развернуть/Свернуть
function removeFromHome($query) {
if ($query->is_home() && $query->is_main_query()) {
$query->set('cat','-24');
}
}
add_filter('pre_get_posts','removeFromHome');

Если отключить этот фильтр - тогда все начинает работать предсказуемо и по "документации".


--------------------
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
andreykashops
andreykashops
сообщение 9.4.2015, 2:06; Ответить: andreykashops
Сообщение #2


WordPress is my Life..
******

Группа: Active User
Сообщений: 1434
Регистрация: 21.7.2012
Из: Украины
Поблагодарили: 641 раз
Репутация:   139  


Код
wp_reset_postdata();

замените на
Код
wp_reset_query();


--------------------


Поблагодарили: (2)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
mmkulikov
mmkulikov
Topic Starter сообщение 9.4.2015, 19:29; Ответить: mmkulikov
Сообщение #3


Старожил
******

Группа: Active User
Сообщений: 2116
Регистрация: 21.9.2012
Из: СССР
Поблагодарили: 610 раз
Репутация:   70  


Цитата(andreykashops @ 9.4.2015, 0:06) *
wp_reset_query();

Еще вчера пробовал - чудо не произошло :pardon:

Решение нашел
Вот рабочий код
Развернуть/Свернуть
<aside class="widget">
<h3 class="widget-title">АФИША</h3>
<div class="textwidget">
<?php
$allposttype = mp_get_all_posttype();
query_posts( array( 'cat' => '24', 'post_type'=> $allposttype, 'posts_per_page' => 10, 'ignore_sticky_posts' => 1, 'orderby' => 'post__in', 'order' => '') );
while ( have_posts() ) : the_post(); ?>
<article id="post-<?php the_ID(); ?>" rel="<? the_permalink();?>">
<a href="<?php the_permalink(); ?>" class="thumb-link"><?php the_post_thumbnail( array(135,100) ); ?></a>
<div style="max-width: 330px; max-height: 100px; overflow: hidden; float: left;">
<h2 class="blog-title" style="width:100%; margin:4px 0px; clear: none; font-size: 16px;"><a href="<? the_permalink();?>" title="<? the_title();?>"><? the_title();?></a></h2>
<header class="entry-header entry-meta">
<?php thinkup_input_blogdate(); ?>
</header><!-- .entry-header -->

<?php the_excerpt(); ?>
</div>

<div style="clear: both;"></div>
</article>
<?php endwhile; wp_reset_query(); ?>
</div>
</aside>


Но непонятка нестыковка c документацией и рекомендациями к дополнительным циклам осталась!
По-факту вышло, что если до вывода основного цикла использовать get_posts и
использовать какой-то фильтр - получаем полностью невменяемую выдачу.
А вот не рекомендованная к использованию query_posts отработала совершенно верно и адекватно!
Шайтан :hmhm: какой-то, или барабашка... Не хорошо.


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
andreykashops
andreykashops
сообщение 9.4.2015, 20:16; Ответить: andreykashops
Сообщение #4


WordPress is my Life..
******

Группа: Active User
Сообщений: 1434
Регистрация: 21.7.2012
Из: Украины
Поблагодарили: 641 раз
Репутация:   139  


mmkulikov, терзает догадка, что проблема в том, что вы используете для произвольных запросов глобальные переменные($post, $posts)... Еще вчера хотел это написать, но подумал, что функция должна их перезаписать в исходный вариант(что она по определению и должна делать).

Сообщение отредактировал andreykashops - 9.4.2015, 20:16


--------------------


Поблагодарили: (1)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
mmkulikov
mmkulikov
Topic Starter сообщение 10.4.2015, 12:53; Ответить: mmkulikov
Сообщение #5


Старожил
******

Группа: Active User
Сообщений: 2116
Регистрация: 21.9.2012
Из: СССР
Поблагодарили: 610 раз
Репутация:   70  


Цитата(andreykashops @ 9.4.2015, 18:16) *
глобальные переменные($post, $posts)...

Сохраняются, переименовываются ... :pardon:
Похоже дело еще и в конкретной теме (тема что-то "крутит" с пагинацией и выводом основного цикла)

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Верстка + натяжка на CMS WordPress, OpenCart
0 Chezarius 195 Вчера, 14:37
автор: Chezarius
Горячая тема (нет новых ответов) Услуги по CMS Wordpress, DLE, Joomla!. Правки, ремонт, настройка.
Редактирование и правки. Низкие цены.
156 contex1 70781 Вчера, 0:06
автор: AnnaProf
Открытая тема (нет новых ответов) Удаляю вирусы на CMS WordPress. Чищу качественно и быстро, даю гарантию.
10 maxix 1135 21.5.2018, 16:59
автор: maxix
Открытая тема (нет новых ответов) Тема имеет прикрепленные файлыСайт о Туризме Wordpress
4 tbr82 661 19.5.2018, 19:53
автор: 1da1
Открытая тема (нет новых ответов) Русификация шаблонов и плагинов WordPress
0 Dizer7 239 18.5.2018, 17:35
автор: Dizer7


 



RSS Текстовая версия Сейчас: 23.5.2018, 5:55
Дизайн