WordPress URL问题和布局

时间:2013-08-04 作者:Jeremi Liwanag

为什么2个主页的布局不同。

当我把http://localhost/mysite/home/

布局看起来不错,博客列表就在那里。。这里没有问题。。但当我点击主页时,它会自动转到这个url。。。

http://localhost/mysite/博客帖子列表也不见了。。。

我创建了一个名为“主页”的页面,它使用自定义模板。。。并将其设置为位于“设置>>阅读”中的“首页”

这是我的自定义模板的代码。。。

<?php /*
Template Name: List BLog
*/ ?>
<?php get_header(); ?>
<?php if ( has_post_thumbnail() ) { ?>

<div class="featured">
  <?php the_post_thumbnail(); ?>
</div>
<?php } ?>
<div class="divider"></div>
<?php genesis_before_content_sidebar_wrap(); ?>
<div id="content-sidebar-wrap">
  <?php genesis_before_content(); ?>
  <div id="content" class="hfeed">
    <?php genesis_before_loop(); ?>
    <?php query_posts( $args );  ?>
    <?php if (have_posts()) : while (have_posts()) : the_post(); ?>
    <div <?php post_class() ?> id="post-<?php the_ID(); ?>">
      <h2><a href="<?php the_permalink() ?>">
        <?php the_title(); ?>
        </a></h2>
      <div class="postmetadata"> Posted in:
        <?php the_category(\', \') ?>
        |
        <?php comments_popup_link(\'No Comments &#187;\', \'1 Comment &#187;\', \'% Comments &#187;\'); ?>
      </div>
      <div class="entry-content">
        <?php the_excerpt(); ?>
      </div>
    </div>
    <?php endwhile; ?>
    <?php else : ?>
    <h2>Not Found</h2>
    <?php endif; ?>
    <?php genesis_after_loop(); ?>
  </div>
  <!-- end #content -->
  <?php genesis_after_content(); ?>
</div>
<!-- end #content-sidebar-wrap -->
<?php genesis_after_content_sidebar_wrap(); ?>
<?php get_footer(); ?>
我不知道发生了什么事。帮助

2 个回复
最合适的回答,由SO网友:s_ha_dum 整理而成

在中设置为“首页”的页面Settings -> Reading 会出现在这里--http://localhost/mysite/-- 不管它的地址是什么。我不知道你是要那个地址还是这个地址,不过:http://localhost/mysite/home/

我知道模板坏了。这个$args 此处为变量:

query_posts( $args );
。。。未设置,因此查询不返回任何内容,因此“博客文章列表已消失”。

其中有许多genesis函数。我不确定他们做了什么,但也许这就是模板在这里工作的原因--http://localhost/mysite/home/-- 但不是在这里--http://localhost/mysite/... _如果我没看错你的话。

您应该知道,使用query_posts 在这样的模板中,表单非常糟糕。它会导致对数据库进行第二组查询,使其效率非常低。There is a note in the Codex:

应该注意的是,使用它来替换页面上的主查询可能会增加页面加载时间,在最坏的情况下,所需工作量会增加一倍或更多。虽然该函数易于使用,但以后也容易出现混淆和问题。有关详细信息,请参阅下面关于注意事项的注释。

再说一次,我不太确定你想要完成什么,但我认为you should be using either home.php or front-page.php for this purpose 而不是创建一个页面并将其设置为“首页”。如果您想要一个仍然有可编辑内容的静态首页,那么您所做的将是一个很好的方法。显示博客列表有点不合适。

SO网友:JMau

要为首页设置自定义模板,最好使用另一个名为front-page.php如果你看看template hierarchy, 这也是WP在加载首页时查找的第一个文件。

因此,请将代码复制/粘贴到您调用的另一个文件中front-page.php看看它是否有效。如果没有,您的安装设置可能有错误。

结束

相关推荐

WordPress URL问题和布局 - 小码农CODE - 行之有效找到问题解决它

WordPress URL问题和布局

时间:2013-08-04 作者:Jeremi Liwanag

为什么2个主页的布局不同。

当我把http://localhost/mysite/home/

布局看起来不错,博客列表就在那里。。这里没有问题。。但当我点击主页时,它会自动转到这个url。。。

http://localhost/mysite/博客帖子列表也不见了。。。

我创建了一个名为“主页”的页面,它使用自定义模板。。。并将其设置为位于“设置>>阅读”中的“首页”

这是我的自定义模板的代码。。。

<?php /*
Template Name: List BLog
*/ ?>
<?php get_header(); ?>
<?php if ( has_post_thumbnail() ) { ?>

<div class="featured">
  <?php the_post_thumbnail(); ?>
</div>
<?php } ?>
<div class="divider"></div>
<?php genesis_before_content_sidebar_wrap(); ?>
<div id="content-sidebar-wrap">
  <?php genesis_before_content(); ?>
  <div id="content" class="hfeed">
    <?php genesis_before_loop(); ?>
    <?php query_posts( $args );  ?>
    <?php if (have_posts()) : while (have_posts()) : the_post(); ?>
    <div <?php post_class() ?> id="post-<?php the_ID(); ?>">
      <h2><a href="<?php the_permalink() ?>">
        <?php the_title(); ?>
        </a></h2>
      <div class="postmetadata"> Posted in:
        <?php the_category(\', \') ?>
        |
        <?php comments_popup_link(\'No Comments &#187;\', \'1 Comment &#187;\', \'% Comments &#187;\'); ?>
      </div>
      <div class="entry-content">
        <?php the_excerpt(); ?>
      </div>
    </div>
    <?php endwhile; ?>
    <?php else : ?>
    <h2>Not Found</h2>
    <?php endif; ?>
    <?php genesis_after_loop(); ?>
  </div>
  <!-- end #content -->
  <?php genesis_after_content(); ?>
</div>
<!-- end #content-sidebar-wrap -->
<?php genesis_after_content_sidebar_wrap(); ?>
<?php get_footer(); ?>
我不知道发生了什么事。帮助

2 个回复
最合适的回答,由SO网友:s_ha_dum 整理而成

在中设置为“首页”的页面Settings -> Reading 会出现在这里--http://localhost/mysite/-- 不管它的地址是什么。我不知道你是要那个地址还是这个地址,不过:http://localhost/mysite/home/

我知道模板坏了。这个$args 此处为变量:

query_posts( $args );
。。。未设置,因此查询不返回任何内容,因此“博客文章列表已消失”。

其中有许多genesis函数。我不确定他们做了什么,但也许这就是模板在这里工作的原因--http://localhost/mysite/home/-- 但不是在这里--http://localhost/mysite/... _如果我没看错你的话。

您应该知道,使用query_posts 在这样的模板中,表单非常糟糕。它会导致对数据库进行第二组查询,使其效率非常低。There is a note in the Codex:

应该注意的是,使用它来替换页面上的主查询可能会增加页面加载时间,在最坏的情况下,所需工作量会增加一倍或更多。虽然该函数易于使用,但以后也容易出现混淆和问题。有关详细信息,请参阅下面关于注意事项的注释。

再说一次,我不太确定你想要完成什么,但我认为you should be using either home.php or front-page.php for this purpose 而不是创建一个页面并将其设置为“首页”。如果您想要一个仍然有可编辑内容的静态首页,那么您所做的将是一个很好的方法。显示博客列表有点不合适。

SO网友:JMau

要为首页设置自定义模板,最好使用另一个名为front-page.php如果你看看template hierarchy, 这也是WP在加载首页时查找的第一个文件。

因此,请将代码复制/粘贴到您调用的另一个文件中front-page.php看看它是否有效。如果没有,您的安装设置可能有错误。

相关推荐