我有一个wordpress网站,我在那里发布歌词。我写了一个wp查询来列出特定的帖子并按帖子视图排序。然而,我想通过youtube视图来订购它们。
我已经能够获得帖子(歌曲)的youtube视图计数,问题是用它来排序帖子。代码如下所示:-
<ul>
<?php $item=0; $loop = new WP_Query( array( \'post_type\' => \'lyrics\', \'date_query\' => array( array( \'after\' => \'1 month ago\' ) ), \'post_status\'=> \'publish\', \'meta_key\' => \'post_view_count\', \'orderby\' => \'meta_value\', \'posts_per_page\' => 10 ) );
while ( $loop->have_posts() ) : $loop->the_post();
$song_name = get_the_title();
/*YOUTUBE QUERY HERE*/
$Yviews = 1234;
<li>
<?php echo esc_attr($song_name).\' (\'.$Yviews.\' views)\'; ?>
</li>
<?php endwhile; wp_reset_query(); ?>
Things I Have Tried
我创建了一个自定义字段,并尝试用
update_post_meta(get_the_ID(), \'youtube_views\', $Yviews);
和已更改
\'meta_key\' => \'post_view_count\'
到
\'meta_key\' => \'youtube_views\'
但这要么不起作用,要么我做得不好。
我如何做到这一点?
PS:归根结底,我想排序的是帖子浏览量和youtube浏览量的总和,但我可以没有这些。
提前谢谢。
PS:为了使代码尽可能简单,我省略了youtube api查询。
SO网友:Salem Terrano
https://codex.wordpress.org/Class_Reference/WP_Query#Order_.26_Orderby_Parameters
<ul>
<?php
$item=0;
$attr = array(
\'post_type\' => \'lyrics\',
\'date_query\' => array( array( \'after\' => \'1 month ago\' ) ),
\'post_status\'=> \'publish\',
\'meta_key\' => \'youtube_views\',
\'orderby\' => \'meta_value\',
\'order\' => \'DESC\',
\'posts_per_page\' => 10
);
$loop = new WP_Query( $attr );
while ( $loop->have_posts() ) : $loop->the_post();
$song_name = get_the_title();
/*YOUTUBE QUERY HERE*/
// $Yviews = 1234;
?>
<li>
<?php echo esc_attr($song_name).\' (\'.$Yviews.\' views)\'; ?>
</li>
<?php endwhile; wp_reset_query(); ?>
</ul>