Wordpress循环效率

时间:2016-02-08 14:17:40

标签: php wordpress

我使用wordpress构建此站点: http://mida.org.il/

正如您所看到的,主页需要花费大量时间才能加载。 我正在尝试解决此问题 - 该页面中有五个自定义循环,其中三个使用<div class="container"> <h1>Tutorials</h1> </div> posts_per_page来查询帖子,cat设置为3。 我的问题是,如果循环到达第三个帖子,它会停止并突然爆发,或者它保持循环直到它到达最后一个帖子? 如果第二个是正确的,难怪它很慢,这个网站有数千个帖子。

循环的代码:

posts_per_page

X3。

每个循环查询不同的类别(if ( $first_special_cat ){ $args = array( 'cat'=>$first_special_cat, 'posts_per_page'=>3, 'orderby'=>'date', 'post__not_in'=>$sticky ); $cat_name = $first_special_cat; $cat_id = get_cat_ID($first_special_cat); }else{ $args = array( 'cat'=>50, 'posts_per_page'=>3, 'orderby'=>'date', 'post__not_in'=>$sticky ); $cat_name = get_cat_name(50); $cat_id = 50; } $the_query = new WP_Query($args); echo '<div class="special-proj-main-title">'; echo '<div class="homepage-blueline-title"></div>'; echo '<h4 class="special-cat-name"><a href="' . esc_url( get_term_link($cat_id) ) . '">' . $cat_name . '</h4>'; echo '</div>'; ?> <div class="row"> <div class="col-sm-4"> <?php if ( $the_query->have_posts() ): ?> <?php while ( $the_query->have_posts() ) : $the_query->the_post(); //Setting the three posts to the right: ?> <h2 class="special-project-title"><a class="special-proj-title-link" href="<?php echo esc_url( get_the_permalink() )?>"><?php the_title()?></a></h2> <br/> <div class="post-meta special-project-meta"><?php mida_post_meta()?></div><br/> <?php endwhile; wp_reset_postdata(); ?> <span class="to-all-posts"><a href="<?php echo esc_url( get_term_link($cat_id) )?>"><?php echo sprintf( __('Load more posts from %s', 'mida'), $cat_name ); ?></a></span> <?php else: echo "You put wrong id"; endif; ?> </div> <div class="col-sm-8 home-background-img"> <?php if ( $first_special_post ) $args = array('name' => $first_special_post, 'posts_per_page' => 1 ); else $args = array('cat'=>50, 'posts_per_page' => 1, 'orderby'=>'date' ); $the_query = new WP_Query( $args ); if ( $the_query->have_posts() ): while ( $the_query->have_posts() ) : $the_query->the_post(); ?> <?php $first_special_img = get_field('rectangular_image'); if ( $first_special_img ) $first_special_img_src = wp_get_attachment_image_src( $first_special_img['id'], 'full' ); else $first_special_img_src = wp_get_attachment_image_src( get_post_thumbnail_id(), 'full' ); ?> <div class="special-project-section" style="background: url('<?php echo $first_special_img_src[0]; ?>');background-size: contain;"> <a href="<?php echo esc_url( get_the_permalink() )?>" title="<?php the_title() ?>"><span style=" position:absolute; width:100%; height:100%; top:0; left:0; z-index: 1;"></</span> </a> <?php echo '<div class="special-cat-on-img">'; echo $first_special_text ? '<h5><div class="special-cat-name-img">' . $first_special_text . '</div></h5>' : '<h5><div class="special-cat-name-img">' . __('Special Project', 'mida') . '</div></h5>'; ?> <h6 class="speical-cat-title-img"><a href="<?php the_permalink()?>"> <?php the_title() ?> </a></h6> <?php echo '</div>'; ?> <div class="blue-line"><?php echo '<div class="special-proj-ex">' . $first_special_cat_ex . '</div>'; ?></div> </div> <?php endwhile; wp_reset_postdata(); endif; ?> </div> </div> 是自定义字段,来自用户的输入)。

那么有人可以帮我优化这段代码(并回答上面的问题)吗?

谢谢!

1 个答案:

答案 0 :(得分:2)

你的问题不在你的循环中,而是在页面本身。总页面大小高达11.8MB!这看起来主要是由于大量的图像。您可以尝试一些小图像优化(使用jpg&#39; s用于大拇指/图像)并确保图像大小正确。老实说,延迟加载可能是一个很好的解决方案!有很多选项可以让它易于实现。