【问题标题】:Query and display post from database (Wordpress)从数据库查询和显示帖子(Wordpress)
【发布时间】:2013-02-28 19:07:28
【问题描述】:

我的问题:我想要我的 wordpress 博客的存档页面。找到了足够的模板,但我想自己做。 它应该看起来如何: 我有一些带有年份的标签,每年都有一个带有月份的列表,每个月都有一个带有每个帖子的子列表。 MySQL级别我有点......初学者! 我设法查询了帖子,但我不知道如何在列表下显示它们。

“foreach”让我头疼!:(

我的代码

global $wpdb;
$posts = $wpdb ->get_results("
                SELECT 
                     post_title as post, year(post_date) as year
                FROM wp_posts
                ORDER BY year");

foreach($posts as $post)
    $post=$post_title;

echo $post;

【问题讨论】:

    标签: php sql wordpress


    【解决方案1】:

    在您的代码中发生的情况是,您在每次迭代 post 对象时都设置了 $post。那么会发生什么,手动编写,是这样的:$post = "title1"; $post="title2"; 等。然后在最后你回显它只会显示“title100”。

    如果您将代码更改为:

    foreach($posts as $post)
    {
        $post=$post_title;
        echo $post;
    }
    

    它会设置$post = "title1"; echo $post;,这会给你title1、title2等。

    您也可以只删除 $post 的变量声明。

    foreach($posts as $post)
        echo $post_title;
    

    这就是 foreach 循环的理论,现在您似乎不知从何处得到了$post_title。也许它应该更多的是$post->post; 或者可能是$post['post']; 虽然我不完全知道wordpress 是如何做到这一点的。

    编辑:我查了一下$wpdb,虽然还是有点模糊,但我认为应该是$post['post'];

    【讨论】:

    • 我尝试了这个(使用 $post['post']),但仍然出现错误! i.minus.com/irczhZyqCvWwp.PNG
    • 好的,使用$post->post?似乎$posts 最终是一个对象列表。 foreach 是否将关联数组转换为对象,有人吗?如果仍然失败,请尝试 var_dump($post);
    • 完全成功了!现在我只需要设置这个样式就可以做得更好!
    猜你喜欢
    • 2020-05-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多