【问题标题】:Wordpress static home page templateWordpress 静态主页模板
【发布时间】:2012-01-09 11:48:08
【问题描述】:

我正在尝试为 Wordpress 网站编写一个模板,以用作静态首页(包含一些动态内容)。我已经创建了页面,并将其设置为使用我的“主页”模板(保存在 frontpage.php 中)。这个frontpage.php 文件与我的page.php 文件相同,用于显示“关于”和“联系”等页面。但是,当我转到首页时,它会显示所有三个页面的内容:主页、关于和联系方式。

当我访问主页时,似乎只获取关于和联系人单个页面内容的 Wordpress 循环正在获取所有页面的内容。这可能是什么原因造成的?

我的page.php 看起来像这样:

<?php get_header(); ?>

<div id="content">
<?php while(have_posts()) : the_post() ?>
    <div id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
        <h2 class="entry-title"><?php the_title(); ?></h2>

        <div class="entry-content">
<?php the_content(); ?>
        </div><!-- .entry-content -->

        <?php edit_post_link('Edit', '<p>', '</p>'); ?>

    </div><!-- #post-<?php the_ID(); ?> -->
<?php endwhile; ?>
</div><!-- #content -->

<?php get_footer(); ?>

[使用 Wordpress 3.2.1。]

【问题讨论】:

  • 请注意,您有一个没有在任何地方打开的结束 标记。请添加更多代码,因为这部分看起来不错。如果您确定此模板和您的 frontpage.php 相同,请确保您在 Wordpress Admin 中使用了正确的模板。
  • 抱歉 - 我从这个示例代码中删除了一些格式后留下的。没有任何结构性 - 例如,只是从该标题中删除了一个冗长的链接。修复了代码。
  • @Justus Romijn 我确定文件是相同的。我进行了修改 - 我将主页恢复为默认模板,然后创建了一个 page-home.php 作为 page.php 的副本,并添加了注释以识别它。当我加载我的主页时,评论就在那里,并且显示了所有三个页面。

标签: php wordpress


【解决方案1】:

最后,我不知道出了什么问题。我所做的是创建了一个名为 Home 的静态页面,在 page-home.php 中为其创建了一个自定义模板,并将 index.php 重定向到主页的 URL,如下所示:

<meta HTTP-EQUIV="REFRESH" content="0; url=<?php bloginfo('url'); ?>/home/">

这并不理想,但效果很好。

【讨论】:

    【解决方案2】:

    您可能想在“设置 -> 阅读”中查看您的 Wordpress 管理员。默认情况下,主页是文章列表,您需要将其更改为静态页面。希望这可以解决您的问题!

    下面的示例是我构建的一个 Wordpress 网站,它有一个名为 Homepage 的静态页面作为首页:

    【讨论】:

      【解决方案3】:

      因为你有while循环,它显示所有页面,就在while循环之前,改变下面的代码来改变查询。

      <?php get_header(); ?>
      <div id="content"> 
      <?php 
      query_posts('p=5');//substitute 5 with the front page id
      while(have_posts()) : the_post() ?>
      ....the same...
      

      希望对你有帮助。

      【讨论】:

      • 我想知道为什么当我访问我的关于页面时,while 循环只显示关于页面,但当我访问我的主页时它显示所有页面。不过,感谢您的语法 - 我可能不得不求助于这个!
      • 这是一个好问题,我的猜测是它是基于WP提交的查询字符串,尝试在循环之前捕获两个页面中的$query_string,看看有什么区别。跨度>
      • 因为当您传递 the_permalink 参数并单击它时,它传递了该页面 ID,并且您的 page.php 在内部运行该 ID 帖子的查询,因为您刚刚在 page.php 和主页中检查了 have_posts()你正在运行 while 循环。
      猜你喜欢
      • 2015-07-19
      • 1970-01-01
      • 2018-03-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多