如何更改自定义表单域的顺序

时间:2011-01-12 作者:Scott B

我在类别编辑器中添加了一个“自定义标题”字段,以便捕获一个关键字友好的标题,该标题可以与类别名称分开使用。它工作得很好,但它显示为类别屏幕的最后一个输入元素。理想情况下,我希望它位于“Name”字段下(或最上面)。这可能吗?

这是我用来将自定义输入字段添加到类别编辑屏幕的代码。。。

if($pagenow == "edit-tags.php" && $_REQUEST[\'action\'] == "edit") 
add_filter(\'edit_category_form\', \'my_category_fields\');

function my_category_fields($tag) {
$tag_extra_fields = get_option(MY_CATEGORY_FIELDS);?>
<table class="form-table">
    <tr class="form-field">
        <th scope="row" valign="top"><label for="categoryTitle">Full Category Title</label></th>
        <td><input name="categoryTitle" id="categoryTitle" type="text" size="40" aria-required="false" value="<?php echo $tag_extra_fields[$tag->term_id][\'cat_title\']; ?>" />
        <p class="description">The title is optional but will be used in place of the name on the category landing page.</p></td>
    </tr>   
</table>
<?php
}

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

WordPress没有提供您想要的挂钩,但您愿意使用PHP的输出缓冲和preg_replace() 您可以让它工作,而无需黑客核心。下面是一个关于所需一般技术的答案:

您要使用的挂钩有\'category_pre_add_form\' 对于ob_start()\'category_add_form\' 对于ob_get_clean().

SO网友:MathSmath

没有破解内核,就没有基于php的解决方案。打开文件wp-admin/edt-tag-form.php 你会看到的。您使用的钩子在提交按钮之前触发,表单的其余部分是硬编码的。

但jQuery可能可以做到这一点。Read my answer to this similar question for an example. 这个例子是针对后期编辑屏幕的,但概念应该是相同的——使用jQuery的insertBefore() 方法将一个元素(按ID)移动到另一个元素(按ID)之前。

结束

相关推荐