我有一个自定义的帖子类型模板,我在其中循环浏览所有帖子。我正在尝试的是,当我转到自定义帖子页面时,我想在循环中获取当前帖子id。
因此,我尝试检查循环中的帖子的永久链接是否相同。如果相同,我将获取循环中当前帖子的帖子id。
这是我试过的代码
首先尝试让permalink在外部检查它在循环内部
$permalink = get_permalink();
现在我得到了当前的post permalink现在我想得到当前的post id
if($query->have_posts()) :
while ($query->have_posts()) : $query->the_post();
if(the_permalink()==$permalink){
echo get_the_ID();
}else{
echo "not found";
}
endwhile;
wp_reset_postdata();
endif;
我试过这个
single-{custom-post-name}.php
我正在
not found
.谁能给我一个方法来获取此模板中当前的帖子id?
最合适的回答,由SO网友:Simon 整理而成
所以有两个循环:主循环和第二个循环使用$query
.
您想比较在第二个循环的某个点上,当前帖子(在循环内)和$query
环
我说得对吗?
我建议检查ID,而不是检查永久链接。
因此,在第一个循环中,您创建了一个具有当前post id的变量:
$current_post_id = $post->ID;
在第二个循环中,您只需比较:
if($query->have_posts()) : while ($query->have_posts()) : $query->the_post();
if( $current_post_id === $post->ID ) {
echo $post->ID;
} else {
echo "not found";
}
endwhile; wp_reset_postdata(); endif;
不确定你在找什么,请告诉我们。
附言:我应该为你的查询添加一个更具体的名称,只是为了避免插件或任何东西的名称冲突,比如$my_prefix_query