如何获取定制帖子的索引?

时间:2015-06-23 作者:Corey

这是一种不同的请求,但我的客户需要自定义帖子类型的索引。

基本上,对于普通帖子,他们可以从自定义字段的列表中选择一个自定义帖子来“附加”到帖子。我是通过ACF做这件事的。

在前端,我得到的只是一篇带有常规帖子数据的自定义帖子。我的用户需要该自定义帖子相对于其他自定义帖子的索引。

例如,如果有10个自定义贴子,1号是最旧的,他们碰巧选择了第三个最旧的贴子,他们希望它显示“3号”。

你知道如何在不运行大量查询的情况下做到这一点吗?

我想我应该使用phparray_search() 以某种方式发挥作用。。。

 ;

EDIT

在此处找到答案:Get the index of post outside the loop

基本上我只是先查询所有帖子,然后使用上面帖子中的功能:

function get_post_index ( $posts = array(), $vs = 0) {
    if ( empty($posts) ) return -1;
    $i = 0;
    foreach ( $posts as $one ) {
        if ( $one->ID == $vs ) return $i;
        $i++;
    }
    return -1;
}
获取自定义帖子的索引。

1 个回复
SO网友:s_ha_dum

例如,如果有10个自定义贴子,1号是最旧的,他们碰巧选择了第三个最旧的贴子,他们希望它显示“3号”。

还有一种比该功能更优雅的方式:

$args = array(
  \'post_type\' => \'book\',
  \'fields\' => \'ids\',
  \'ignore_sticky_posts\' => true,
  \'orderby\' => \'post_date\',
  \'order\' => \'DESC\'
);
$posts = new WP_Query($args);
// var_dump($posts->posts);

$index = array_search(300,$posts->posts);
if (!empty($index)) {
  echo $index + 1;
} else {
  echo \'not found\';
}
它几乎不值得一个函数,真的,但如果您想要一个函数:

function get_post_index ( $ids, $vs = 0 {
  if (empty($ids) || !is_array($ids)) return false;
  $index = array_search($vs,$ids);
  if (!empty($index)) {
    return $index + 1;
  } else {
    return false;
  }
}

结束

相关推荐

在单击jQuery时显示内容(_C)

我试图在单击时显示帖子的\\u内容。我遇到的问题是,它总是显示相同的内容。我的意思是,点击阅读A帖,它会显示A帖的内容,也会显示B帖、C帖等的内容。这是我的原始代码: <ul class=\"top-stories\"> <?php query_posts(\'showposts=2&post_type=post\'); ?> <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>