问题:
想要使用我发表的所有文章中的所有$post->ID
创建一个数组。但是在我的WordPress中,我有$tokenID
,如果与$post->ID
匹配,则显示某篇文章的关键。
代码图1
$tokenID = 244;
$io_ID = new WP_Query( ['post_type' => 'sdm_downloads', 'posts_per_page' => -1] );
while ( $io_ID->have_posts() ) : $io_ID->the_post();
print_r($post->ID);
endwhile;
wp_reset_postdata();
结果: 255254253251244
这是$post->ID
在while()
循环中回显的内容,它应该是255,254,253,251,244
我尝试了str_split
,结果几乎接近我想要实现的目标。这是输出。
代码图2
$tokenID = 244;
$io_ID = new WP_Query( ['post_type' => 'sdm_downloads', 'posts_per_page' => -1] );
while ( $io_ID->have_posts() ) : $io_ID->the_post();
$arr2 = str_split($post->ID, 3);
// print_r($arr2);
if( in_array($tokenID, $arr2) ) {
$set = 'true';
} else {
$set = 'false';
}
endwhile;
wp_reset_postdata();
echo $set;
print_r的结果:数组([0] => 255)数组([0] => 254)数组([0] => 253)数组([0] = > 251)数组([0] => 244)
条件结果:" true"
*即使$tokenID
不同,$set
输出仍然会产生true
。
问题
如何在$post->ID
转换为数组时创建条件排列?如果在发布文章之前该值存在,我想首先查看并匹配$tokenID
和$post->ID
。
答案 0 :(得分:1)
也许这个解决方案有帮助!
$tokenID = 244;
$all_posts = get_posts('post_type=sdm_downloads');
$all_id = array();
foreach( $all_posts as $all_post ) {
$all_id[] = $all_post->ID;
}
//$arr2 = str_split($all_titles, 3);
if( in_array($tokenID, $all_id) ) {
$set = 'true';
} else {
$set = 'false';
}
echo $set;