使用tag-it插件将标签分配给前端的帖子

时间:2013-05-28 13:35:55

标签: jquery wordpress http-post frontend tag-it

Tag-it是一个jquery UI插件,允许分配标签,就像stackoverflow中的标签系统一样。 https://github.com/aehlke/tag-it/blob/master/README.markdown

我的目标是让我的wordpress网站的成员从前端发帖。为此,我创建了一个带有输入字段的表单。我使用$_POST['something']获取输入内容。要插入帖子数据(标题,内容,自定义字段值),我使用wp_insert_post函数,它运行良好。

要为特定帖子插入标签,我使用wp_set_object_terms函数(因为我使用自定义帖子类型和标签分类)。如果我为它分配一些样本值但是我无法获得由tag-it创建的标记输入的输入值,那么最后一个函数运行良好。我尽力在插件和负责为WP DB中的帖子分配标签的PHP代码之间建立链接。

事实上,在我的代码源中我把:

<ul id="myTags">
</ul>

此代码由插件(执行后)转换为:

<ul id="myTags" class="tagit ui-widget ui-widget-content ui-corner-all">
<li class="tagit-new">
<input type="text" class="ui-widget-content ui-autocomplete-input" autocomplete="off" role="textbox" aria-autocomplete="list" aria-haspopup="true">
</li>
</ul>

如何从此输入字段中检索POST变量作为数组,以便我可以将其放在wp_set_object_terms的参数中?

您的日常帮助总是受到赞赏。

1 个答案:

答案 0 :(得分:0)

我将fieldName参数添加到tagit函数中,如下所示:

<script type="text/javascript">
    $(document).ready(function() {
        $("#myTags").tagit(
        {
        fieldName: "tages[]"
        }
        );
    });
</script>

现在我可以回显$_POST['tages'];,因为执行后的HTML变为:

<input type="hidden" style="display:none;" value="d" name="tages">

此外,$_POST['tages'];是一个PHP数组,我可以直接放入wp_set_object_terms的第二个参数。

非常感谢,有些问题需要花费很多时间来解决,但只有在将它们发布到SO之前。