php - 根据数组中找到的 ID 运行 wp_query
问题描述
我有一个会话数组 ( $_SESSION['recently_viewed']
),它当前输出以下内容:
array(3) { [0]=> int(635) [1]=> int(643) [2]=> int(474) }
635
,643
并且474
是IDs
我的自定义帖子类型中的帖子,称为accessories
.
我正在尝试显示属于该数组的帖子,但不确定如何在逻辑上执行此操作。
到目前为止,我有:
<?php
global $post;
$args = array(
'post_type' => 'accessories',
'p' => $_SESSION['recently_viewed'], // something like this, but logically correct
'post_status' => 'publish',
);
$query = new WP_Query( $args );
if($query->have_posts() ) :
while ( $query->have_posts() ) : $query->the_post();
echo the_title();
endwhile; wp_reset_postdata(); ?>
<?php endif; ?>
我该怎么做?
解决方案
您可以在 WP_Query 的 post__in 参数中传递结果数组。
$args = array(
'post_type' => 'accessories',
'post__in' => $_SESSION['recently_viewed'],
'post_status' => 'publish',
);
但是您可能需要重组 $_SESSION['recently_viewed'] 并确保它是一个有效的数组。如果它已经有效,那么上面的查询应该可以正常工作。
文档中的更多信息。
// https://developer.wordpress.org/reference/classes/wp_query/#post-page-parameters
推荐阅读
- python - 使用Python和bleak库通知蓝牙GATT设备,但结果不稳定
- java - 如何将参数动态添加到 Spring Boot @PreAuthorize with SpEL to hasAnyRole
- python - Python:NameError:名称未定义,即使已定义
- unicode - 将 Unicode 字符串转换为规范化形式的伪代码算法
- javascript - jquery中的条件递增和递减运算符
- amazon-web-services - 如何通过 webhook 触发 codebuild 以获取来自 bitbucket 的 pull request denied 事件?
- android - 图像到 ByteData 的转换显示错误
- python - 在 python 中使用 fillna 时出现越界纳秒时间戳错误?
- pyspark - 石墨或grafana可以用来监控pyspark指标吗?
- javascript - 根据输入值自动添加表单输入字段