我正在修改自定义分类法,允许内容管理器指定术语在小部件中出现的数字顺序。在这种情况下,他们不能依赖字母顺序。我用过this tutorial 向条目中添加输入[type=number]并编辑表单,这样就可以了。实际添加或编辑术语以保存订单时会出现问题。代码如下:
public function sanitize_term_order($number) {
return is_numeric($number) ? absint($number) : 1;
}
public function add_order_to_service_hierarchy_when_adding() {
$field = $this->controller->hierarchy_tax . "-term-order"; ?>
<div class="form-field form-field-custom term-group <?php echo $field ?>">
<label for="<?php echo $field ?>">Term Order</label>
<input type="number" step="1" min="1" name="<?php echo $field ?>" id="<?php echo $field ?>" value="1">
<?php wp_nonce_field(basename(__FILE__), $field . "-nonce") ?>
</div>
<?php }
public function add_order_to_service_hierarchy_when_editing($term) {
$field = $this->controller->hierarchy_tax . "-term-order";
$value = get_term_meta($term->term_id, $field, true);
if (!is_numeric($value)) {
$value = 1;
} ?>
<tr class="form-field form-field-custom term-group-wrap <?php echo $field ?>">
<th scope="row"><label for="<?php echo $field ?>">Term Order</label></th>
<td>
<input type="number" step="1" min="1" name="<?php echo $field ?>" id="<?php echo $field ?>" value="<?php echo $value ?>">
<?php wp_nonce_field(basename(__FILE__), $field . "-nonce") ?>
</td>
</tr>
<?php }
public function save_hierarchy_term_order($term_id) {
$field = $this->controller->hierarchy_tax . "-term-order";
if (isset($_POST[$field . "-nonce"]) && wp_verify_nonce($_POST[$field . "-nonce"], basename(__FILE__))) {
$value = $this->sanitize_term_order($_POST[$field]);
echo ("field: $field<br>value: $value<br>term_id: $term_id<br><br>");
$results = update_term_meta((int)$term_id, $field, $value);
die(var_dump($results));
}
}
下面是一个结果示例:
field: service-hierarchy-term-order
value: 2
term id: 58
bool(false)
我已经将过滤器和操作添加到这两个程序中存在的每个钩子中
taxonomy.php
和
meta.php
在我用过
update_term_meta()
在我的代码中。我试过使用
add_term_meta()
和
update_term_meta()
单独看看是否有帮助。尽管VARCHAR(255)是数据库中meta\\u键列的长度,我还是更改了字段的名称,以查看是否存在隐藏的长度限制。
而且,运气不好。目前,为了继续开发,我已经使用站点选项(即。update_option($field ."-". $term_id, $value)
) 这是可行的,但我更愿意弄清楚为什么“元功能”这个词会失败。
有什么想法吗?