Форум по программированию > PHP; PERL и ASP

Долго грузится страница вывод новостей. Помогите с кодом

(1/1)

nick_sinigamy:
Добрый день. В коде не сильно понимаю по этому прошу помощи.
Есть страница: https://mariupolfm.com.ua/category/news/
Имеет код:
(нажмите чтобы показать/скрыть)<?php get_header(); ?>

<?php
    $args = array('posts_per_page' => -1, 'orderby' => 'date', 'cat' => 3);
    $myQuery = new WP_Query($args);
    $date = '';
    $i = 0;
    global $dynamic_featured_image;
?>

<div class="inner-plug">
    новости
</div>
<div class="wrapper">
    <div class="news-list">
        <div class="news-block">

        <?php /* ЧАСТЬ ПРОБЛЕМНОГО КОДА НАЧИНАЕТСЯ ТУТ
                if ( $myQuery->have_posts() ) : while ( $myQuery->have_posts() ) : $myQuery->the_post();
                    if ( $date != get_the_date() ) {
                        $dspl = ($i >= 2) ? "none" : "block";
                        $i += 1;
                        $date = get_the_date();
                        echo "<div class=\"date\" style='display: ".$dspl."'>".$date."</div><ul style='display: ".$dspl."'>";
                    }
                    if (get_post_meta(get_the_id(), 'special_news', true)) {
                        $is_special = "<em>".get_post_meta(get_the_id(), 'special_news_text', true).":</em> ";
                    } else {
                        $is_special = "";
                    }
                    $featured_images = $dynamic_featured_image->get_featured_images(get_the_id());
                    //echo "<li><a href='".get_permalink()."' class='link-ani'><span>".get_post_meta(get_the_id(), 'Время', true).$is_special."</span>".get_the_title()."</a></li>";
                    echo "<li>";
                       //echo "<a href='".get_permalink()."' class='link-ani'><img src='".$featured_images[0]['full']."' /></a>";
                        if ($featured_images[0]['full']) {
                            echo "<a href='".get_permalink()."' class='link-ani news-short-img' style='background-image:url(".$featured_images[0]['thumb'].")'></a>";
                        }
                        echo "<div class='news-short-text'>";
                            echo "<span><a href='".get_permalink()."' class='link-ani'>".get_post_meta(get_the_id(), 'Время', true)."</a></span>";
                            echo $is_special."<a href='".get_permalink()."' class='link-ani news-short-link'>".get_the_title()."</a>";
                        echo "</div>";
                      echo "<div class='clear'></div>";
                    echo "</li>";
                endwhile; endif;
               wp_reset_postdata();
          ЗАКАНЧИВАЕТСЯ ТУТ */  ?>
           
        </div>
        <a class="news-more link-ani" href="#">больше</a>
    </div>
    <aside class="sidebar">
        <?=do_shortcode("[banner group='banners-for-news-page' count=1500]");?>
    </aside>
    <div class="clear"></div>
</div>
<?php get_footer(); ?>Полностью страница погружается долго и выглядит так:

Если вырезать проблемный код то так:

Вопрос что не так с проблемной частью помогите разобраться?

ProtectYourSite:
Во-первых, этот проблемный блок и отвечает за новости.
Во-вторых, что за дикая логика, грузить кучу новостей в display:none - неудивительно, что так будет тормозить.

nick_sinigamy:
ProtectYourSite,
Не подскажите как найти выход из положения? Плохо понимаю php

Yoh:
Здесь не все так просто. У Вас выводятся формируются все новости сразу, однако только часть сразу отображается на сайте. Именно формирование всех сразу новостей и замедляет работу. Если просто сократить число выводимых новостей в строке
--- Код: ---Только зарегистрированные пользователи могут видеть код. Пожалуйста, войдите или зарегистрируйтесь.
--- Конец кода ---
, то это ускорить страницу, но по нажатию кнопки "Больше" новости появляться не будут. Здесь нужно выполнить две вещи выводить новости порционно, а кнопку "Больше" доработать для загрузки новостей через ajax (она будет не просто менять display none на display block, а делать запрос к сайту для получения новой порции новостей).

Если с кодом не разбираетесь, то поставьте плагин WP Super Cache. Включите его после установки, поставьте экспертный режим (это необходимо чтобы страниц отдавались средствами Apache, а не PHP), а также уберите из исключений кэширование запросов роботами. Остальное можно не менять. Это значительно ускорит все страницы сайта, в том числе и проблемную https://mariupolfm.com.ua/category/news/

nick_sinigamy:
Спасибо за помощью сократил вывод новостей до 50 мне пока этого достаточно.

Навигация

[0] Главная страница сообщений

Перейти к полной версии