wordpress和同位素砌体突然搞砸了

时间:2012-04-30 22:50:55

标签: php jquery wordpress

我目前在页面上遇到了令人沮丧的问题。 我使用jquery同位素制作一个包含在div中的水平网格图像,所有这些都在wordpress上运行。它已经完美地工作了很长一段时间。它是显示特定类别的每个子类别的第一个帖子的特色图像的页面。 为了使砌体网格正常工作,我一直在使用php从每个图像中检索图像大小,并将其作为内联css样式放在div标签中。正如我所说,它一直在完美地工作。

突然间,我的网站上出现了非常糟糕的加载时间,一旦页面加载,网格就会搞砸了。一些同位素元素将在它们的正确位置,但有些将完全关闭。检查源代码我可以告诉他们"关闭"元素避免使用内联css打印它们的大小 - 它们应该通过php获得的数字。在每个页面加载时,div似乎是完全随机的。有时候他们都会在正确的位置。但最常见的是三人将会离开。

我刚刚升级到wordpress 3.3.2 - 问题出现在升级之前和之后。

我的托管服务拒绝承认这是他们的问题。我很难相信这一点,因为当网站突然搞砸时,我没有对任何事情做过任何改动。

即使升级到新版本,Wordpress安装是否会突然崩溃?

这是我用来使整个网格工作的代码:

$args=array(
  'child_of' => '50',
  'orderby' => 'name',
  'order' => 'DESC'
  );
$categories=get_categories($args);
    foreach($categories as $category) {
      $posts=get_posts('showposts=1&cat='. $category->term_id);
      if ($posts) {
        foreach($posts as $post) {
          setup_postdata($post); 

        ?>
        <a class="thumblink" href="<?php the_permalink();?>">
        <?php
            if ( has_post_thumbnail() ) { // check if the post has a Post Thumbnail assigned to it.
              $thumbsize = get_post_custom_values("thumbsize"); // retrieve the wished thumb size, designated in the custom field
              if ( $thumbsize[0] >= 1 && $thumbsize[0] <= 6 ) { // if the thumb size is in the 1 to 6...
          $imglink = wp_get_attachment_image_src( get_post_thumbnail_id(), $thumbsize[0] );
          $size = getimagesize($imglink[0]); // get the width and height of the image in order to work properly with masonry
          echo "<div class='thumbdiv masonrythumb hashover' style='width:$size[0]px;height:$size[1]px'>";
          echo "<div class='hoverobject'>"; //superimposes the content of the post on top of the image on hover
          the_content();
          echo "</div>";
            the_post_thumbnail( $thumbsize[0], array('class' => '' , 'title' => '' ) ); // use the designated thumb size
          echo "</div>";
            }
            }
    ?>
    </a>




        } // foreach($posts
      } // if ($posts
    } // foreach($categories

任何人都可以判断脚本是否存在明显的问题,导致整个页面加载速度过慢?

非常感谢能够帮助我的每个人。我把头发拉过来;老实说,我不明白一些有效的东西会突然停止工作。

2 个答案:

答案 0 :(得分:0)

听起来你的foreach语句一遍又一遍地运行(因此缓慢的“加载”时间)因此导致DOM输出出现意外结果。将结束括号(最后三行代码)放在PHP中,然后回显最后一个链接。像这样:

   echo "</a>";
  } // foreach $posts
 } // if $posts
} // foreach $categories
?>

或者,您只需在结束链接标记下方添加<?php即可。如果有效,请告诉我。

答案 1 :(得分:0)

对于任何有兴趣的人,我似乎已经解决了这个问题。

我不知道是什么搞了一下页面,但我可以说,似乎两个函数wp_get_attachment_image_src()getimagesize()以某种方式相互影响。现在,在正确阅读文档后,我意识到wp_get_attachment_image_src()函数返回一个包含img源和宽度和高度的数组,所以我甚至不需要getimagesize()函数。

现在网站加载速度很快,没有任何DOM混乱。