在WordPress前台允许用户提交自定义文章类型的文章需要一些自定义编程工作。以下是一个基本的步骤,让你能够在WordPress前台启用自定义文章类型的投稿功能。

wordpress 前台投稿自定义文章类型文章

  1. 创建自定义文章类型:

首先,你需要创建一个自定义文章类型。你可以在主题的functions.php文件中添加以下代码来创建一个自定义文章类型,例如名为custom_post_type

function custom_post_type() {
    $args = array(
        'public' => true,
        'label'  => 'Custom Post Type',
        'supports' => array('title', 'editor', 'author', 'thumbnail', 'excerpt', 'comments'),
        // 添加其他自定义参数和设置
    );
    register_post_type('custom_post_type', $args);
}
add_action('init', 'custom_post_type');

在这里,你可以根据你的需求自定义文章类型的参数和支持的功能。

  1. 创建前台提交表单:

接下来,你需要在前台创建一个表单,让用户能够提交自定义文章类型的文章。你可以使用WordPress表单插件,如Gravity Forms、Contact Form 7等,或者手动创建一个自定义表单。

如果你手动创建表单,你可以使用HTML和PHP来构建表单,然后使用wp_insert_post()函数将用户提交的数据插入到自定义文章类型中。下面是一个示例:

<form method="post" action="">
    <label for="post_title">标题:</label>
    <input type="text" name="post_title" id="post_title" />

    <label for="post_content">内容:</label>
    <textarea name="post_content" id="post_content"></textarea>

    <input type="submit" name="submit" value="提交" />
</form>

<?php
if (isset($_POST['submit'])) {
    $post_title = sanitize_text_field($_POST['post_title']);
    $post_content = wp_kses_post($_POST['post_content']);

    $post_data = array(
        'post_title'   => $post_title,
        'post_content' => $post_content,
        'post_type'    => 'custom_post_type', // 这里使用你创建的自定义文章类型名称
        'post_status'  => 'pending', // 或者 'publish',根据你的需求
    );

    $post_id = wp_insert_post($post_data);

    if ($post_id) {
        echo '文章已提交,等待审核。';
    } else {
        echo '文章提交失败。';
    }
}
?>

这个表单将用户提交的数据插入到自定义文章类型中,并将文章状态设置为待审核状态。

  1. 设定权限和安全性:

确保适当地设定表单的权限和安全性。你可能需要使用WordPress的非cesurf库来增加表单的安全性,并考虑添加适当的权限检查,以确保只有授权用户可以提交文章。

  1. 自定义显示模板:

最后,你可能需要创建一个自定义的文章模板来显示自定义文章类型的文章。你可以创建一个单独的模板文件,例如singlecustom_post_type.php,并在其中定义文章的显示方式。

以上是在WordPress前台启用自定义文章类型的投稿功能的基本步骤。你可以根据自己的需求进一步自定义和改进这些步骤。确保备份你的网站数据并小心测试,以确保一切正常运行。