Loop after page content

时间:2012-10-17 作者:kristina childs

我刚从2.9升级到3.4.2(我知道,我知道,但如果它没有坏…)我有一些页面模板,它们被设置为(或至少被设置为)先显示页面内容,然后开始一个帖子循环,如下所示:

<div id="content">
    <div class="content-title">ABOUT THE SITE</div>
    <div id="content-main">
        <img src="<?php bloginfo(\'template_url\'); ?>/images/headline.gif" />
        <div class="nopad"><?php the_content(); ?></div>
    </div>

    <div class="content-title" style="color: #05B2A9;">POSTS BY DATE</div>
        <div id="comments">
            <?php
                $paged = (get_query_var(\'paged\')) ? get_query_var(\'paged\') : 1;
                $args= array(
                    \'cat\' => 8,
                    \'paged\' => $paged
                );
                query_posts($args);
            ?>
            <?php if (have_posts()) : ?>
            <?php while (have_posts()) : the_post(); ?>
            <?php
                $key="main img";
                $my_main_img = get_post_meta($post->ID, $key, true);
                $key="thumb img";
                $my_thumb_img = get_post_meta($post->ID, $key, true);
            ?>
            <div <?php post_class() ?>>
                <div class="blog-list">
                    <div class="blog-list-img">
                         <!-- do stuff -->
                    </div>
                </div>
            </div>
            <?php endwhile; ?>
            <?php else : endif; ?>
            <div id="blog-list-more">
                <div class="next"><?php previous_posts_link(\'&nbsp;\') ?></div>
                <div class="previous"><?php next_posts_link(\'&nbsp;\') ?></div>
            </div>
        </div>
    </div>
这在2.9中运行得很好,但在这次新升级中,它不会显示页面内容。我有多个页面模板,能够在运行简单查询的页面上修复它(如博客贡献者列表),方法是

<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>
之前<div id="content">, 但正如你在博客主归档页面上所想象的那样,这不是一个选项。(我只是想确定一下)。

那么,如何在主循环之外获取页面的内容呢?我必须运行两个循环吗?这似乎是一件很简单的事情,但我不知道怎么做。我不能在这个页面上运行简单的查询,因为里面有各种各样疯狂的东西。或者我可以吗?

1 个回复
SO网友:kaiser

更新主题并不难。但有必要让它与当前版本的内核配合良好。

以下是您可能需要做的一些注意事项:

查询模板发布缩略图(&L);特色图片查询Nowadays, we\'re using get_posts() or new WP_Query 对于这种情况,除了WordPress的默认查询之外,您还需要执行另一个(手动)查询。

所以你可以打电话:

$wpse69629_query = new WP_Query( array(
    \'cat\'   => 8
   ,\'paged\' => get_query_var(\'paged\') ? get_query_var(\'paged\') : 1;
) );
if ( $wpse69629_query->have_posts() )
{
    while ( $wpse69629_query->have_posts() )
    {
        $wpse69629_query->the_post();

        // do stuff
    }
}
模板层次结构由于有一个查询只从特定类别加载帖子,因此您可以考虑添加另一个仅对此类别触发的模板。这将为您节省额外的查询。

只需将代码(不带查询,但带有默认循环)复制到名为category-8.php.

enter image description here

帖子缩略图

With (afaik) WP 2.9, post thumbnails/feat.images arrived. 那时候你的主题似乎没有实现这一点。

现在,只需调用the_post_thumbnail() 在列表视图中和() 对于单个视图。

对这一壮举的支持。大小将在php函数中设置,如下所示:

function wpse69629_feat_img_size()
{
    add_theme_support( \'post-thumbnails\' ); 

    set_post_thumbnail_size( 50, 50 );
}
add_action( \'after_setup_theme\', \'wpse69629_feat_img_size\' );
然后可以在模板中这样调用它:

<?php the_post_thumbnail(\'thumbnail\', array(\'class\' => \'alignleft\')); ?>

结束

相关推荐

$wpdb未在Function中定义:致命错误:调用非对象上的成员函数Query()

由于某些原因,$wpdb对象没有在一个特定函数中定义。我在文件中还有四个使用$wpdb的其他函数,除此之外,所有函数都工作正常,只有一个简单的删除函数出现错误:Call to a member function query() on a non-object... 以下是相关功能:function delete_gallery( $gallery_id ) { global $wpdb; $sql = \"DELETE from galleries WHERE g