在前端更新/保存wp_Terms_Checklist生成的项目

时间:2015-08-22 作者:Grant

我在一个前端页面上显示了自定义帖子类型的自定义分类列表,其中显示了用户以前选中的所有项目。

我已将其正确显示,但我无法确定如何保存任何新的/更改的选择。

这是我用来显示术语的代码:

$args = array(
    \'descendants_and_self\'  => 0,
    \'selected_cats\'         => false,
    \'popular_cats\'          => false,
    \'walker\'                => null,
    \'taxonomy\'              => \'genres\',
    \'checked_ontop\'         => false
); 

wp_terms_checklist( $my_postid, $args ); 
页面上的输出如下:

<li id=\'genres-28\'><label class="selectit"><input value="28" type="checkbox" name="tax_input[genres][]" id="in-genres-28" checked=\'checked\' /> 2 Step</label></li>

<li id=\'genres-14\'><label class="selectit"><input value="14" type="checkbox" name="tax_input[genres][]" id="in-genres-14" checked=\'checked\' /> Afro House</label></li>

<li id=\'genres-7\'><label class="selectit"><input value="7" type="checkbox" name="tax_input[genres][]" id="in-genres-7" checked=\'checked\' /> Bassline</label></li>

etc...
我正在设置如下post数据:

$post_to_edit = array(
    \'ID\'           => $my_postid,
    \'post_content\' => $_POST[\'editor\'],
    \'tax_input\'    =>  array( \'genres\' => array($_POST[\'tax_input[genres]\']) )
);

$pid = wp_update_post($post_to_edit);
然后我尝试更新如下术语:

wp_set_post_terms($pid,(array)$_POST[\'tax_input[genres]\'],\'genres\', true);
我也尝试过:

wp_set_object_terms($pid,(array)($_POST[\'tax_input[genres]\']),\'genres\');
但两者都不起作用?

我猜我没有选择正确的name属性,但在过去的24小时里,我已经尝试了所有我能想到的方法,只是无法将术语保存到数据库中。

有人知道我如何保存/更新wp_terms_checklist?

1 个回复
最合适的回答,由SO网友:webtoure 整理而成

$_POST[\'tax_input[genres]\'] should be $_POST[\'tax_input\'][\'genres\']

结束

相关推荐

Get_Terms()返回空数组

我已经阅读了所有关于显示自定义分类法术语的帖子,但它仍然不起作用。好的,下面是代码:<?php //part of template-offer.php $taxonomy = \'brand\'; $term_args=array( \'hide_empty\' => false, \'orderby\' => \'name\', \'order\' => \'ASC\' ); $tax_terms =