我有一个有趣的问题,我希望有人能快速回答。
我创建了自己的元数据框,它基于“我的元数据框代码”(下面的列表)正确显示了我创建的“事件类型”分类法中所有术语的下拉列表。
当从下拉列表中选择不同的术语并更新帖子时,我遇到的问题是能够保存/更新与帖子关联的术语。
在修改了各种代码位之后,我能够通过手动输入 term_ID 号来弄清楚 [separated by commas] 进入阵列区域,我得到了我正在寻找的结果。
例如,如果在保存帖子时调用此代码的函数
wp_set_post_terms( $post_id, array(5,7), 'event_types', FALSE);
然后我的帖子将更新并将 term_ID 5 和 7 关联到它,如您所见,我正在传入数组。 问题是这是硬编码到我的 functions.php 文件中,而不是基于用户选择的下拉值(注意:我实际上只是想传递一个 ID,但我做了两个用于测试,如下所述)。
我也已经能够弄清楚,如果我将以下代码添加到我的 metabox 文件中,那么我就能够回显分配的术语 ID 列表,但最后一项有一个逗号。
<?php $event_types = wp_get_object_terms($post->ID, 'event_types'); foreach ($event_types as $event_type) { echo $event_type->term_id . ','; } ?>
所以…看来我已经解决了 85% 的问题。 我的问题的剩余 15% 仍然如下:
提前非常感谢你们 – 下面是我目前在每个文件中使用的代码。
我的 FUNCTIONS.PHP 文件中的代码
function save_event_taxonomy_terms($meta, $post_id) { $event_types = wp_get_object_terms($post->ID, 'event_types'); wp_set_post_terms( $post_id, array($names), 'event_types', FALSE); }
我的 METABOX 代码
<select name="post_event_types" id='post_event-types'> // DISPLAY TERMS AS DROP DOWN OPTIONS <?php $names = wp_get_object_terms($post->ID, 'event_types'); $event_types = get_terms('event_types', 'hide_empty=0'); ?> <option class="event_type-option" value="" <?php if (!count($names)) echo "selected";?>>Not Assigned</option> <?php foreach ($event_types as $event_type) { if (!is_wp_error($names) && !empty($names) && !strcmp($event_type->slug, $names[0]->slug)) echo "<option class="event_type-option" value="" . $event_type->slug . "" selected>" . $event_type->name . "</option>\n"; else echo "<option class="event_type-option" value="" . $event_type->slug . "">" . $event_type->name . "</option>\n"; } ?> </select>
原文链接:https://www.wordpresshy.com/324090
© 版权声明
声明📢本站内容均来自互联网,归原创作者所有,如有侵权必删除。
本站文章皆由CC-4.0协议发布,如无来源则为原创,转载请注明出处。
THE END