有一个自定义文本字段,提示用户输入要在侧边栏中显示的页面ID。我正在寻找一种方法,将自定义字段中输入的那些数字作为数组传递到"post__in"参数中。
目前代码:
<?php $pageid = get_post_meta(get_the_ID(),'key', true);
$args = array(
'post_type' => 'page',
'post__in' => array($pageid)
);
$childrens = new WP_Query($args);
if ($childrens->have_posts()) : ?>
<div class="sidebar-post-container">
<?php while ($childrens->have_posts()) : $childrens->the_post();?>
<div class="staff-thumbnail" id="staff-<?php the_ID(); ?>">
<figure id="attachement_<?php the_ID();?>">
<?php the_post_thumbnail(array(200,200,true),array('loading' => 'lazy', "alt"=> '', 'aria-hidden'=> 'true', 'tabindex' =>"-1"));?></figure>
<p><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></p>
</div>
<?php endwhile; ?>
</div>
<?php endif; wp_reset_query(); ?>
这只返回一个页面的第一个数字(ID)输入。我们如何传递这些值,使它返回的网页,他们的ID?
1条答案
按热度按时间bsxbgnwa1#
您的
post_meta
返回一个字符串,而array($pageid)
只创建了一个包含单个元素的数组。您需要使用explode(...)
将字符串转换为数组。我建议指导用户使用逗号分隔id,例如1,2,3,4,5
。然后使用以下命令应该可以工作:我还推荐几个调整:
ss_
。$pageid
成为$pageIds
的复数。explode
与trim
结合使用,以确保用户不输入空格。请注意,将 meta键名称更改为
ss_child_page_ids
还需要更新存储此字段的其余代码,并且还将取消链接任何现有值,因为您不再引用key
。而
$childrens
也可以改为$children
,它已经是复数形式了。现在
$pageIds
应该是一个数组,每个id项都有,比如'1,2,3,4,5'
将是['1','2','3','4','5']
。