我目前在页面上遇到了令人沮丧的问题。 我使用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
任何人都可以判断脚本是否存在明显的问题,导致整个页面加载速度过慢?
非常感谢能够帮助我的每个人。我把头发拉过来;老实说,我不明白一些有效的东西会突然停止工作。
答案 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混乱。