WordPress中如何添加投稿功能
更新时间:2023-12-27
段落一:WordPress投稿功能的基本流程
在Wordpress中,添加投稿功能首先要了解其基本流程。首先,要在WordPress后台创建一个投稿类型,比如文章(post)或页面(page)。然后需要创建文章或页面的模板文件,为它们添加一些自定义字段,以便用户能够在添加文章或页面时填写相关信息。最后,要向WordPress前端添加一个可访问的页面模板,允许访问者填写并提交文章或页面的表单数据。
下面是一个示例代码,演示如何在WordPress后台中创建一个自定义文章类型:
创建自定义文章类型
function register_custom_post_type() { $args = array( 'public' => true, 'label' => '我的文章', 'labels' => array( 'singular_name' => '文章', 'add_new_item' => '添加新文章', 'edit_item' => '编辑文章' ), 'supports' => array( 'title', 'editor', 'thumbnail', 'excerpt', 'comments' ) ); register_post_type( 'custom_post_type', $args ); } add_action( 'init', 'register_custom_post_type' );这段代码将创建一个名为“我的文章”的自定义文章类型,允许用户添加标题,正文,缩略图,摘要,以及对文章进行评论。 段落二:创建自定义字段 接下来,需要创建自定义字段,以便用户在添加文章或页面时填写相关信息。自定义字段可以通过WordPress后台的添加字段页面或者使用插件来创建。下面是一个示例代码,演示如何使用ACF插件创建自定义字段:
使用ACF插件创建自定义字段
function register_custom_fields() { if ( function_exists( 'acf_add_local_field_group' ) ) { acf_add_local_field_group( array( 'key' => 'group_5f7084e5765ba', 'title' => '文章自定义字段', 'fields' => array( array( 'key' => 'field_5f70856fe5b65', 'label' => '作者', 'name' => 'author', 'type' => 'text', ), array( 'key' => 'field_5f708583e5b66', 'label' => '发布时间', 'name' => 'publish_time', 'type' => 'date_picker', ), ), 'location' => array( array( array( 'param' => 'post_type', 'operator' => '==', 'value' => 'custom_post_type', ), ), ), )); } } add_action( 'acf/init', 'register_custom_fields' );这段代码示例演示了如何使用ACF插件创建自定义文字,在名为“我的文章”的自定义文章类型中添加了作者和发布时间两个字段。 段落三:在前端添加投稿表单 接下来,需要在前端添加投稿表单,让访问者能够填写并提交文章或页面的表单数据。可以选择自己编写表单,也可以使用插件辅助完成。 下面是一个示例代码,演示如何使用Contact Form 7插件创建一个文章投稿表单:
使用Contact Form 7创建投稿表单
[contact-form-7 id="99" title="文章投稿"]这段代码示例演示了如何使用Contact Form 7插件创建一个名为“文章投稿”的表单,在表单中包含了标题,正文,作者和发布时间四个字段并提交表单。 段落四:将表单数据保存为文章 最后,在表单成功提交后,需要将表单数据保存为WordPress中的文章或页面。在Contact Form 7插件中,可以使用“wpcf7_before_send_mail”钩子来编写保存表单数据的功能,具体代码如下:
使用Contact Form 7保存表单数据为文章
add_action('wpcf7_before_send_mail', 'save_post_from_contact_form_7'); function save_post_from_contact_form_7($wpcf7_contact_form) { $title = $_POST['title']; $content = $_POST['content']; $author = $_POST['author']; $publish_time = $_POST['publish_time']; $post_data = array( 'post_title' => $title, 'post_content' => $content, 'post_status' => 'publish', 'post_type' => 'custom_post_type', 'post_author' => $author, 'post_date' => $publish_time, ); $post_id = wp_insert_post($post_data); if (!empty($post_id)) { update_field('field_5f70856fe5b65', $author, $post_id); update_field('field_5f708583e5b66', $publish_time, $post_id); } }这段代码演示了如何使用“wpcf7_before_send_mail”钩子,在表单提交之前将表单数据保存为一个名为“custom_post_type”的文章类型,并依次为文章设置标题,正文,作者,发布时间,文章状态,并将作者和发布时间两个自定义文字更新到文章中。 综上所述,通过以上步骤和代码示例,我们可以轻松地在WordPress中添加投稿功能,让用户可以在前端页面提交文章或页面。