我需要的是:显示除当前帖子之外的任意帖子,用于自定义帖子类型Question
在以下代码中,排除不起作用。它只显示任何帖子,包括当前帖子。
<?php
$my_query = new WP_Query( array(\'showposts\' => \'8\', \'post_type\' => \'question\', \'post__not_in\' => array( $post->ID ), \'orderby\' => \'rand\'));
while ( $my_query->have_posts() ) : $my_query->the_post(); ?>
<a href="<?php the_permalink(); ?>"><?php the_title() ?></a><br>
<?php endwhile; ?>
如果我更改
Question
未来
Page
, 它适用于Page。如果删除
Question
, 它适用于Post。
我想如果我想让它适用于自定义帖子类型,那一定是我错过了什么
Update:
之前我写过
Question
现在更改为
question
, 但结果仍然相同
最合适的回答,由SO网友:Abhik 整理而成
您应该使用get_queried_object()
或get_queried_object_id()
获取当前自定义帖子的ID。IMOget_queried_object()
在这里是一个更好的选择,因为您也可以有条件地检查帖子类型。试试这个
function wpse258217_random_posts() {
$obj = get_queried_object();
if ( $obj->post_type === \'question\' ) {
$postid = $obj->ID;
$my_query = new WP_Query( array(\'showposts\' => \'8\', \'post_type\' => \'question\', \'post__not_in\' => array( $postid ), \'orderby\' => \'rand\'));
//Execute the loop here
}
}