在单个页面上构建和显示多个页面的内容

时间:2014-08-24 作者:the Freelancer

我试图在一个页面上显示多个页面的内容。然而,对于每一页,我需要标题、摘录、内容和特色图片。每个页面内容的显示具有不同的结构,因此我需要控制HTML元素及其类和ID。我还需要能够控制顺序。

我读过20篇论坛帖子和博客文章,但没有一种解决方案能够控制每一组特定页面内容的HTML结构,也不能控制它们的显示顺序。

如果有人能帮忙,我将不胜感激。

1 个回复
最合适的回答,由SO网友:Pieter Goosen 整理而成

这是一个相当大的问题要回答,所以我不想深入,我只想涵盖要点。

您需要创建一个自定义查询来获取页面中的所有数据。使用WP_Query 创建自定义查询。下面是一个来自codex的基本查询,可以获取您的页面

<?php

// The Query
$the_query = new WP_Query( \'posts_per_page=-1&post_type=page\' );

// The Loop
if ( $the_query->have_posts() ) {
    echo \'<ul>\';
    while ( $the_query->have_posts() ) {
        $the_query->the_post();

        // YOUR LOOP ELEMENTS HERE

    }
    echo \'</ul>\';
} else {
    // no posts found
}
/* Restore original Post Data */
wp_reset_postdata();

?>
要显示标题和帖子缩略图,请检查以下链接

您应该通过bundled themes 查看循环的结构及其HTML结构的外观

要排序页面,您应该查看orderbyorder 中的参数WP_Query 可用于在自定义查询中对页面进行排序

至于对HTML结构的控制,您可以在类中使用页面ID和ID,并相应地设置目标和样式。利用the_ID 获取循环中的页面ID。像这样做

<div id="whatever-<?php the_ID(); ?>">

<div class="whatever-<?php the_ID(); ?>">

EDIT

如果您需要对HTML进行严格控制,那么您需要为每个页面硬编码页面ID和HTML结构。您可以使用条件标记,如is_page() 例如

if( is_page( \'whatever\' ) ) {

   //HTML Structure for page whatever

}elseif( is_page( \'whatever-1\' ) ) {

   ////HTML Structure for page whatever-1
} //etc

结束

相关推荐

Infinite blog loop

我不明白为什么我会收到一个无限的博客帖子。当我注释内容中的循环代码时。php,它不再循环。我正在尝试根据post格式发布项目,但到目前为止失败了。如果我需要提供更多信息,请告诉我!我很感激。所容纳之物php:<?php /** * The default template for displaying content. Used for both single and index/archive/search. * * @subpackage Foundatio