我的PHP WordPress代码有什么问题?

时间:2011-06-02 07:09:24

标签: php wordpress

这是我在WordPress主题的index.php中的代码:

<div id="content">
            <?php if (have_posts()) : ?>
            <?php $counter = "0"; ?>
            <?php while (have_posts()) : the_post(); ?>
            <?php
                if ($counter % 2) {
                    $specialprt = "";
                } else {
                    $specialprt = "prt-right";
                }
            ?>
            <div class="partial <?php echo $specialprt; ?>" id="post-<?php the_ID(); ?>">
                <div class="prt-img">
                    <?php echo bdw_get_images($post->the_ID, 'medium'); ?>
                </div>
                <div class="prt-tags">
                    <?php the_tags(' ', ''); ?>
                </div>
                <h2 class="prt-title">
                    <a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title(); ?>"><?php the_title(); ?></a>
                </h2>
                <span class="prt-small">Posted on <?php the_time('l F jS') ?> by <?php the_author() ?></span>
                <p><?php the_excerpt(); ?></p>
                <p><?php edit_post_link('Edit', '', ''); ?></p>
            </div>
            <?php $counter++; ?>
            <?php endwhile; ?>
            <?php endif; ?>
        </div><!-- #content -->

问题:

  1. 所有帖子都有相同的图片。为什么?
  2. 页面加载非常慢。为什么?
  3. 有人可以帮助吗? :)

    感谢。

    更新:

    我有更好的结果:

    <div id="content">
                <?php if (have_posts()) : ?>
                <?php $counter = "0"; ?>
                <?php while (have_posts()) : the_post(); $counter++; ?>
                <?php
                    if ($counter % 2) {
                        $specialprt = "prt-right";
                    } else {
                        $specialprt = "";
                    }
                ?>
                <div class="partial <?php echo $specialprt; ?>" id="post-<?php the_ID(); ?>">
                    <div class="prt-img">
                        <?php
                        $args = array( 'post_type' => 'attachment', 'numberposts' => 1, 'post_status' => null, 'post_parent' => $post->ID );
                        $attachments = get_posts($args);
                        if ($attachments) {
                            foreach ( $attachments as $attachment ) {
                                the_attachment_link( $attachment->ID , true, false, false );
                            }
                        } else {
                            echo "<img src=\"<?php bloginfo('stylesheet_directory'); ?>/images/no-image.jpg\" width=\"250\" height=\"155\" />";
                        }
                        ?>
                    </div>
                    <div class="prt-tags">
                        <?php the_tags(' ', ''); ?>
                    </div>
                    <h2 class="prt-title">
                        <a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title(); ?>"><?php the_title(); ?></a>
                    </h2>
                    <span class="prt-small">Posted on <?php the_time('l F jS') ?> by <?php the_author() ?></span>
                    <p><?php the_excerpt(); ?></p>
                    <p><?php edit_post_link('Edit', '', ''); ?></p>
                </div>
                <?php endwhile; ?>
                <?php endif; ?>
            </div><!-- #content -->
    

3 个答案:

答案 0 :(得分:1)

我可以回答你的第一个问题:

  1. $post->the_ID不正确。虽然它不被识别为$post对象的一部分,但PHP保持通知安静,因此您不会看到任何错误发生。相反,bdw_get_images()只会收到一个空ID,并为每个帖子生成相同的“图像”。

    传入的正确值为$post->ID或致电get_the_ID()

  2. 但不是第二个,因为我认为你的帖子中没有足够的信息来开始弄清楚什么会减慢速度。尝试使用浏览器的Web开发工具来分析请求和响应,看看发生了什么。

答案 1 :(得分:1)

有多少张图片


echo "hello world";

返回?如果它加载了大量图片,或只是一些大图片,这可能是导致页面加载缓慢的原因。

答案 2 :(得分:1)

尝试将计数器放入,如下所示:

<?php while (have_posts()) : the_post();$counter++;?>

<?php
if ($counter % 2) {
                $specialprt = "";
            } else {
                $specialprt = "prt-right";
            }
 ?>