我正在为我正在处理的项目开发一个事件管理插件,我遇到了一个我真的不知道从哪里开始的问题!
基本上,我有两个选项选择下拉元字段,一个使用以下代码查找事件的 CPT并使用该类型的帖子填充列表;
<select name="photo_event" id="photo_event"/>
<option value="none">--- Select Event ---</option>
<?php
global $post;
$args = array( 'post_type' => 'event' );
$posts = get_posts( $args );
foreach($posts as $post) : setup_postdata($post); ?>
<option value="<?php echo $post->ID; ?>"> <?php the_title(); ?> </option>
<?php endforeach; ?>
</select>
另一个查找场地类别并使用以下内容使用子类别(实际场地)填充列表;
<select name="photo_venue" id="photo_venue"/>
<option value="none">--- Select Venue ---</option>
<?php
$params = array(
'type' => 'post',
'child_of' => 3,
'hide_empty' => 0
);
$categories= get_categories($params);
foreach ($categories as $category) {
$option = '<option value="'.$category->category_nicename.'">';
$option .= $category->cat_name;
$option .= '</option>';
echo $option; }
?>
</select>
这些元字段附加到的 CPT 用于发布与 anevent
或 a相关的实体venue
(例如照片、促销材料、录制的混音等)。
现在,问题来了:用户可能希望将实体附加到一个场所,在这种情况下,他们不会选择一个事件,而只是将其保留为默认的“ --- Select Event -- ”,它会返回一个值在none
外地photo_event
。这可以。
但是,由于每个活动仅在一个场地举行,我想这样做,如果用户从活动帖子列表中选择一个活动,场地选项选择框将默认为该活动举行的场地(通过查看查找该活动的帖子信息,并从event_venue
为该特定帖子保留的值中选择适当的地点(元字段event_venue
还查找相同的类别和子类别,photo_venue
以便全面保持连续性[所以过滤venue
不会引发错误])并删除所有其他选项(因此用户不能选择与举办活动的地点不同的地点),或者完全禁用该框并photo_venue
在保存之前仅填充正确的地点。
如何解决这个问题?