0

目前,我的页面遇到了一个非常令人沮丧的问题。我正在使用 jquery isotope 制作一个包含在 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

谁能判断脚本是否存在明显问题导致整个页面加载速度过慢?

非常感谢所有可以帮助我的人。我把头发拉出来了;老实说,我不明白一些一直在工作的东西怎么会突然停止工作。

4

2 回答 2

0

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

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

或者,您可以<?php在结束链接标签下方添加。让我知道这个是否奏效。

于 2012-05-01T00:15:56.123 回答
0

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

我不太清楚一开始是什么把页面搞砸了,但我可以说这两个功能似乎wp_get_attachment_image_src()相互getimagesize()妨碍了。现在,正确阅读文档后,我意识到该wp_get_attachment_image_src()函数返回一个包含 img 源和宽度和高度的数组,所以我什至不需要该getimagesize()函数。

该站点现在可以快速加载,没有任何 DOM 混乱。

于 2012-05-05T09:33:35.347 回答