来自前端的帖子,包括帖子类型、类别和分类

时间:2011-02-26 作者:Lynne

我现在正在开发一个类似于目录的wordpress网站。人们可以提交演练、高级评论以及游戏作弊代码。我们本来打算为每个页面制作一个不同的表单,但现在我们决定使用一个带有下拉列表的表单就可以了。

据我所知,似乎没有一个好的插件,它适应了这样一个事实,即每个提交都需要作为“待定帖子”推送,但也需要推送到特定的帖子类型。

例如,我们将使用的表单设置如下:

Game name: <post title>
Platform:  <Taxonomy>
Category:  <Category> (role playing, FPS, adventure, etc..)
This is a: () Review () Tutorial () Cheat list  <this is the post type>
Content: <post body>
Tags: <tags>
[Submit]
提交后,我需要将评论、作弊或教程设置为挂起的帖子,在从广播框中选择的帖子类型中。

我目前正在使用WP用户前端,但我可能会使用前端表单中建议的任何帖子,以便于修改。将新字段添加到表单很容易,让它们做事情很难!如果能得到任何帮助,我将不胜感激,我们的网站在某种程度上围绕着这些功能。

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

看起来像是Gravity Forms 可以做到这一点。我只是在支持论坛上快速搜索了一下,找到了这个答案,回答了一个与您几乎完全相同的问题:

Gravity表单可以用来创建自定义帖子类型和自定义分类法,但它并不是现成的。它需要使用可用的钩子来告诉Gravity表单使用自定义帖子类型或自定义分类法,而不是默认分类法。默认情况下,它使用标准的WordPress帖子、类别和标记。

所以是的,这是可能的,但它需要一些自定义代码。当您准备好实现这一点时,您可以像许多人一样在论坛上搜索代码示例,或者您可以发布一篇描述您正在尝试做什么的新帖子,并请求一些帮助,我们可以通过基本代码片段帮助您开始。

我们确实计划在将来创建一个插件,它将使创建自定义帖子类型和使用自定义分类法变得更加容易。

SO网友:Bainternet

有一些免费插件可以让您从前端提交帖子:

而报酬更高的是:

但它们都不能为您的需求提供定制编码的灵活性,而前端的帖子实际上是一个显示表单并对其进行处理的问题,因此按照您的用例,您的表单应该是这样的:

<!-- New game Post Form -->
<div id="postbox">
<form id="new_post" name="new_post" method="post" action="">

<!-- game name -->
<p><label for="title">Game name</label><br />
<input type="text" id="title" value="" tabindex="1" size="20" name="title" />
</p>

<!-- game platform assuming that the taxonomy is named platform -->
<p><label for="Platform">Platform:</label><br />
<p><?php wp_dropdown_categories( \'show_option_none=Platform&tab_index=4&taxonomy=platform\' ); ?></p>

<!-- game Category -->
<p><label for="Category">Category:</label><br />
<p><?php wp_dropdown_categories( \'show_option_none=Category&tab_index=4&taxonomy=category\' ); ?></p>

<!-- game post type assuming that the post types are named: review,tutorial,cheat_list-->
<p><label for="post_type">This is a:</label><br />
<p><select name="post_type" id="post_type">
    <option value="review">Review</option>
    <option value="tutorial">Tutorial</option>
    <option value="cheat_list"> Cheat list</option>
</select></p>

<!-- game Content -->
<p><label for="description">Content</label><br />
<textarea id="description" tabindex="3" name="description" cols="50" rows="6"></textarea>
</p>

<!-- game tags -->
<p><label for="post_tags">Tags:</label>
<input type="text" value="" tabindex="5" size="16" name="post_tags" id="post_tags" /></p>
<p align="right"><input type="submit" value="Publish" tabindex="6" id="submit" name="submit" /></p>

<input type="hidden" name="action" value="new_game_post" />
<?php wp_nonce_field( \'new-post\' ); ?>
</form>
</div>
您的表单处理将是:

if( \'POST\' == $_SERVER[\'REQUEST_METHOD\'] && !empty( $_POST[\'action\'] ) &&  $_POST[\'action\'] == "new_game_post") {

    // Do some minor form validation to make sure there is content
    if (isset ($_POST[\'title\'])) {
        $title =  $_POST[\'title\'];
    } else {
        echo \'Please enter a game  title\';
    }
    if (isset ($_POST[\'description\'])) {
        $description = $_POST[\'description\'];
    } else {
        echo \'Please enter the content\';
    }
    $tags = $_POST[\'post_tags\'];

    // Add the content of the form to $post as an array
    $new_post = array(
        \'post_title\'    => $title,
        \'post_content\'  => $description,
        \'post_category\' => array($_POST[\'cat\']),  // Usable for custom taxonomies too
        \'tags_input\'    => array($tags),
        \'post_status\'   => \'publish\',           // Choose: publish, preview, future, draft, etc.
        \'post_type\' => $_POST[\'post_type\']  // Use a custom post type if you want to
    );
    //save the new post
    $pid = wp_insert_post($new_post); 
    //insert taxonomies
    wp_set_post_terms($pid,array($_POST[\'Platform\']),\'platform\',true);
}
这并不完美,但这只是一个开始,你应该有这个想法。

希望这有帮助

相关推荐

提交后重力表单-GFFormsModel::UPDATE_LEAD_FIELD_VALUE?

我在研究重力形态。此代码处理以下几个问题:add_action(\'gform_after_submission_14\', \'post_contract_update\', 10, 2); function post_contract_update($entry, $form) { $form =\'3\'; $lead = $entry[\'4\']; $statusvalue_update = \'Under Contract\';

来自前端的帖子,包括帖子类型、类别和分类 - 小码农CODE - 行之有效找到问题解决它

来自前端的帖子,包括帖子类型、类别和分类

时间:2011-02-26 作者:Lynne

我现在正在开发一个类似于目录的wordpress网站。人们可以提交演练、高级评论以及游戏作弊代码。我们本来打算为每个页面制作一个不同的表单,但现在我们决定使用一个带有下拉列表的表单就可以了。

据我所知,似乎没有一个好的插件,它适应了这样一个事实,即每个提交都需要作为“待定帖子”推送,但也需要推送到特定的帖子类型。

例如,我们将使用的表单设置如下:

Game name: <post title>
Platform:  <Taxonomy>
Category:  <Category> (role playing, FPS, adventure, etc..)
This is a: () Review () Tutorial () Cheat list  <this is the post type>
Content: <post body>
Tags: <tags>
[Submit]
提交后,我需要将评论、作弊或教程设置为挂起的帖子,在从广播框中选择的帖子类型中。

我目前正在使用WP用户前端,但我可能会使用前端表单中建议的任何帖子,以便于修改。将新字段添加到表单很容易,让它们做事情很难!如果能得到任何帮助,我将不胜感激,我们的网站在某种程度上围绕着这些功能。

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

看起来像是Gravity Forms 可以做到这一点。我只是在支持论坛上快速搜索了一下,找到了这个答案,回答了一个与您几乎完全相同的问题:

Gravity表单可以用来创建自定义帖子类型和自定义分类法,但它并不是现成的。它需要使用可用的钩子来告诉Gravity表单使用自定义帖子类型或自定义分类法,而不是默认分类法。默认情况下,它使用标准的WordPress帖子、类别和标记。

所以是的,这是可能的,但它需要一些自定义代码。当您准备好实现这一点时,您可以像许多人一样在论坛上搜索代码示例,或者您可以发布一篇描述您正在尝试做什么的新帖子,并请求一些帮助,我们可以通过基本代码片段帮助您开始。

我们确实计划在将来创建一个插件,它将使创建自定义帖子类型和使用自定义分类法变得更加容易。

SO网友:Bainternet

有一些免费插件可以让您从前端提交帖子:

而报酬更高的是:

但它们都不能为您的需求提供定制编码的灵活性,而前端的帖子实际上是一个显示表单并对其进行处理的问题,因此按照您的用例,您的表单应该是这样的:

<!-- New game Post Form -->
<div id="postbox">
<form id="new_post" name="new_post" method="post" action="">

<!-- game name -->
<p><label for="title">Game name</label><br />
<input type="text" id="title" value="" tabindex="1" size="20" name="title" />
</p>

<!-- game platform assuming that the taxonomy is named platform -->
<p><label for="Platform">Platform:</label><br />
<p><?php wp_dropdown_categories( \'show_option_none=Platform&tab_index=4&taxonomy=platform\' ); ?></p>

<!-- game Category -->
<p><label for="Category">Category:</label><br />
<p><?php wp_dropdown_categories( \'show_option_none=Category&tab_index=4&taxonomy=category\' ); ?></p>

<!-- game post type assuming that the post types are named: review,tutorial,cheat_list-->
<p><label for="post_type">This is a:</label><br />
<p><select name="post_type" id="post_type">
    <option value="review">Review</option>
    <option value="tutorial">Tutorial</option>
    <option value="cheat_list"> Cheat list</option>
</select></p>

<!-- game Content -->
<p><label for="description">Content</label><br />
<textarea id="description" tabindex="3" name="description" cols="50" rows="6"></textarea>
</p>

<!-- game tags -->
<p><label for="post_tags">Tags:</label>
<input type="text" value="" tabindex="5" size="16" name="post_tags" id="post_tags" /></p>
<p align="right"><input type="submit" value="Publish" tabindex="6" id="submit" name="submit" /></p>

<input type="hidden" name="action" value="new_game_post" />
<?php wp_nonce_field( \'new-post\' ); ?>
</form>
</div>
您的表单处理将是:

if( \'POST\' == $_SERVER[\'REQUEST_METHOD\'] && !empty( $_POST[\'action\'] ) &&  $_POST[\'action\'] == "new_game_post") {

    // Do some minor form validation to make sure there is content
    if (isset ($_POST[\'title\'])) {
        $title =  $_POST[\'title\'];
    } else {
        echo \'Please enter a game  title\';
    }
    if (isset ($_POST[\'description\'])) {
        $description = $_POST[\'description\'];
    } else {
        echo \'Please enter the content\';
    }
    $tags = $_POST[\'post_tags\'];

    // Add the content of the form to $post as an array
    $new_post = array(
        \'post_title\'    => $title,
        \'post_content\'  => $description,
        \'post_category\' => array($_POST[\'cat\']),  // Usable for custom taxonomies too
        \'tags_input\'    => array($tags),
        \'post_status\'   => \'publish\',           // Choose: publish, preview, future, draft, etc.
        \'post_type\' => $_POST[\'post_type\']  // Use a custom post type if you want to
    );
    //save the new post
    $pid = wp_insert_post($new_post); 
    //insert taxonomies
    wp_set_post_terms($pid,array($_POST[\'Platform\']),\'platform\',true);
}
这并不完美,但这只是一个开始,你应该有这个想法。

希望这有帮助

相关推荐

使用WPForms提交表单时触发操作

我的一位客户使用WPForms插件创建前端表单。提交表单时,条目进入de数据库(在单独的表wp\\u wpform\\u entries或类似的表中,全部由插件处理)。但他们也希望以JSON格式将所有数据发布到另一个网站。是否有办法知道表单已提交,或者使用add_filter(\'wp_insert_post)?