使用自定义获取结果查询来显示帖子WordPress

时间:2014-12-16 作者:Hassan Ali

我以前有这个代码来显示帖子。

$query_args = array(
                \'post_type\' => \'post\',
                \'posts_per_page\' => 4,
                \'meta_key\' => \'Views\',
                \'orderby\' => \'meta_value_num\',
                \'order\' => \'DESC\',
                \'ignore_sticky_posts\' => true
);
$the_query = new WP_Query( $query_args );
if( $the_query->have_posts() )
{
    while( $the_query->have_posts() )
    {
        $the_query->the_post();                 
        echo    \'<a class="popularPostLinks" href="\' . get_the_permalink() . \'" rel="external" target="_blank">\' . get_the_post_thumbnail() . \'
                        <br>
                        <div>
                            <p>\' . get_the_title() . \'</p>
                        </div>
                </a>\';
    }
}
else
{
    // No posts found.
}
// Restore original post data.
wp_reset_postdata();
但现在我正在使用自定义查询:

$getAllTimeRows = $wpdb->get_results( $wpdb->prepare( "SELECT post_id, SUM( post_value ) AS \'Views\' FROM {$wpdb->prefix}PopularPosts GROUP BY post_id ORDER BY Views DESC LIMIT 4" ) );
我如何使用上面的数组结果来显示帖子,就像WP Query显示帖子一样?这个$getAllTimeRows 包含行(最多4行)以显示(最多4行)帖子。请参见下面的阵列。

print_r ( $getAllTimeRows  )

Array
(
    [0] => stdClass Object
        (
            [post_id] => 213
            [Views] => 16
        )

    [1] => stdClass Object
        (
            [post_id] => 215
            [Views] => 11
        )

    [2] => stdClass Object
        (
            [post_id] => 217
            [Views] => 9
        )

    [3] => stdClass Object
        (
            [post_id] => 227
            [Views] => 7
        )

)

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

通过从PHP数组输出值,可以得到相同的结果。由于它是多列数组,因此需要运行foreach 循环并获取每个子项的值。

大多数情况下,它是标准的PHP内容,没有什么特别之处。虽然之前您不需要在每个WordPress函数中提供post ID,因为您在循环中使用它,但现在您必须这样做。

这里是输出。

foreach( $getAllTimeRows as $getAllTimeRow ) {

    $post_id_num = $getAllTimeRow->post_id;

    echo \'<a class="popularPostLinks" href="\' . get_permalink( $post_id_num ) . \'" rel="external" target="_blank">\' . get_the_post_thumbnail( $post_id_num ) . \'<br>
        <div>
            <p>\' . get_the_title( $post_id_num ) . \'</p>
        </div>
    </a>\';

}

结束

相关推荐

Execute php in pages

我需要在wordpress中执行我的个人php代码来打印mysql数据库中的数据。我只能在页面上执行。我的想法是创建一个文件页pagename。php,复制页面主体。php模板并更改此代码:<?php while ( have_posts() ): the_post(); ?> <article <?php post_class(\'group\'); ?>> <?php get_temp