在我的sidebar.php中只显示the_title()

时间:2013-08-14 13:59:56

标签: php wordpress

网站的布局方式是这样的(只是让你得到一个代表)

----------------------------------
| Name of the Work               |
----------------------------------
| Our Work | the content         |
|          |                     |
|          |                     |
|          |                     |
|          |                     |
|          |                     |
|          |                     |
|          |                     |
-----------------------------------

现在,工作的名称&内容工作正常,但我的侧边栏(“我们的工作”)不起作用。我的意思是,sidebar.php确实显示但是the_title的列表只显示我在哪个页面上的标题。

例如,如果我在ProjectA上,那么在“我们的工作”下,它只会显示ProjectA。 ProjectB,ProjectC等也是如此。

我目前使用的代码是:

<?php if (have_posts()):; ?>
<?php while (have_posts()) : the_post(); ?>    
    <ul>
        <a href="<?php the_permalink(); ?>"><li><?php the_title(); ?></li></a>
    <ul>
<?php endwhile; ?>

我使用了query_posts('posts_per_page = x');但最终发生的事情是the_content显示其他帖子的the_content,我不想要!

1 个答案:

答案 0 :(得分:1)

您当前用于循环的代码基本上是页面的主循环。它没有查询一组特定的帖子。你需要包含一些参数。尝试以下循环:

<ul>
<?php 
    $query = new WP_Query(array('post_type' => 'post', 'posts_per_page' => -1, 'orderby' => 'post_date', 'order' => 'ASC'));
    while ( $query->have_posts() ) : $query->the_post();
?>

    <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>

<?php endwhile; wp_reset_postdata(); ?>
<ul>

有几点需要注意。您的<ul></ul>标记需要在循环之外,否则您将为循环内的每个项目添加新的<ul></ul>。您只需要创建新的列表项,但不是全新的列表。

在第'post_type' => 'post'行中,您可以将post更改为您想要的任何帖子类型的名称。 post只会查询WP管理员中的主要“帖子”。

我还更正了循环内<li></li>的html语法。

此循环不会改变主循环,而是为您创建一个新循环,以显示您选择的内容。