搜索全站
安装部署 10 分钟阅读

WordPress 多作者投稿平台搭建:入驻、前端投稿与稿酬结算

想让一堆人给你写文章,靠临时拉微信群是不行的。本文给出一套完整的入驻—投稿—结算方案:自定义角色、前端投稿表单、多作者署名、以及用结算表驱动稿酬发放。

U
UFO_PF 2020-02-17 · 阅读 10 分钟
Wo 安装部署
阅读提示
本文约 3,976 字,预计阅读 10 分钟。文中命令与配置均经过实测,可直接参考执行。

引言:作者群建起来了,稿子还是发不到站上

做多作者内容站的常见起步方式是:给每个作者开一个后台账号。很快就会发现三个问题:第一,作者不习惯 WordPress 后台,投稿意愿低;第二,作者能看到后台菜单,存在误操作风险;第三,稿酬靠人工统计,一个月下来二十多个人、八十多篇稿子,Excel 对账对到怀疑人生。真正的解法是把”投稿”这件事从后台搬出来:用户在前端提交,编辑在后台收到待审列表,系统按结算周期自动算出金额。

原理分析:三条可选路线,复杂度依次递增

路线一,用成品前端投稿插件。WP User Frontend(WPUF)提供付费的前端发布与投稿套餐,适合预算充足且希望快速上线;User Submitted Posts 侧重图片/文件投稿,非常轻量——它们都把”用户提交 → 待审草稿”这条路走通了,你需要补的只是稿酬部分。

路线二,用 ACF 的前端表单 acf_form() 自行搭建。好处是字段完全可控,能跟你的投稿规范对齐;代价是需要自己处理权限、校验、通知。

路线三,纯自研 Gutenberg 编辑器 + REST API。成本最高,不建议初期采用。

多作者署名方面,PublishPress Authors 插件让一篇文章可以关联多个 Guest Author(不必为每个人都建 WordPress 用户),这对”外部专家专栏”非常关键。稿酬则建议做一张结算表($wpdb->prefix . 'mf_payouts'),以「季度 + 作者ID + Category 计价规则」为维度周期计算。

模块 推荐工具/方案 成本
前端投稿表单 ACF acf_form() / WPUF 低 / 中
多作者署名 PublishPress Authors 免费
审核流 自定义状态 + 通知 低
稿酬统计 自定义表 + WP-CLI 查询 低

保姆级实操

步骤 1:建立”投稿者”角色并限制后台入口。 不要直接给 subscriber,建议独立角色,避免影响默认行为:

register_activation_hook( __FILE__, function () {
    add_role( 'mf_contributor', '投稿作者', [
        'read'              => true,
        'edit_posts'        => true,
        'delete_posts'      => false,
        'upload_files'      => true,
        'publish_posts'     => false,
        'edit_published_posts' => false,
    ] );
} );

// 投稿者登录后不进入后台,直接跳转前台
add_action( 'login_redirect', function ( $redirect_to, $request, $user ) {
    if ( isset( $user->roles ) && in_array( 'mf_contributor', $user->roles, true ) ) {
        return home_url( '/author-dashboard/' );
    }
    return $redirect_to;
}, 10, 3 );

步骤 2:做一个入驻与登录页。 注册用 wp_create_user() 并即刻赋予角色;如果要兼容 WooCommerce 账号体系,用 wc_create_new_customer()。WordPress 前台表单提交与安全

步骤 3:用 acf_form() 输出投稿表单。 表单里的字段组(标题、正文、选题方向、配图)与后续处理解耦:

// 放在自定义页面模板里,必须先调用 acf_form_head()
if ( ! is_user_logged_in() || ! current_user_can( 'mf_contributor' ) ) {
    echo '<p>请先登录投稿账号。</p>';
    return;
}
acf_form( [
    'post_id'      => 'new_post',
    'post_title'   => true,
    'post_content' => true,
    'new_post'     => [
        'post_type'   => 'post',
        'post_status' => 'pending', // 直接进入待审,不发表
    ],
    'field_groups' => [ 'group_投稿字段组' ],
    'submit_value' => '提交稿件',
    'return'       => home_url( '/submit-success/' ),
] );

步骤 4:稿件入库后统一打标,便于结算。 挂在 acf/save_post 上补写作者与计算字段:

add_action( 'acf/save_post', function ( $post_id ) {
    if ( 'post' !== get_post_type( $post_id ) || 'pending' !== get_post_status( $post_id ) ) {
        return;
    }
    $author_id = get_current_user_id();
    if ( ! $author_id ) {
        return;
    }
    update_post_meta( $post_id, '_mf_author_id', $author_id );
    update_post_meta( $post_id, '_mf_word_count', mb_strlen( wp_strip_all_tags( get_post_field( 'post_content', $post_id ) ) ) );
    wp_insert_post( [
        'post_type'   => 'mf_submission_log',
        'post_title'  => '投稿 #' . $post_id,
        'post_status' => 'publish',
        'meta_input'  => [ '_mf_post_id' => $post_id, '_mf_author_id' => $author_id ],
    ] );
}, 20 );

步骤 5:按周期生成稿酬报表。 用 WP-CLI 命令批量汇总,避免前台长查询:

wp eval 'global $wpdb; $rows = $wpdb->get_results(
  "SELECT author_id, COUNT(*) AS num, SUM(words) AS total_words
   FROM {$wpdb->prefix}mf_post_stats
   WHERE published_at BETWEEN \"2026-09-01\" AND \"2026-09-30\"
   GROUP BY author_id", ARRAY_A ); print_r( $rows );'

步骤 6:结算闭环。 把稿酬写成自定义文章类型 + 支付 status(未结算/已结算/已付款),付款完成后追加 /update 记录,并用邮件通知作者,减少沟通成本。

常见踩坑

  1. 没加 acf_form_head(),表单提交后什么也不发生,且不报错。
  2. 案例: 某站点给投稿者开了 upload_files 但没限制媒体库归属,作者可以在媒体库删别人的图;加上 MIME 类型限制后才收口。
  3. acf/save_post 在 20 优先级之前执行,拿不到刚写入的 post_content,字数统计恒为 0。
  4. 前台表单缺 wp_nonce_field,任何人可 curl 批量灌垃圾数据;ACF 表单自带 nonce 校验,自建表单则一定要补上。
  5. 稿件 post_status 用了 draft,编辑部列表里和自用草稿混在一起,很难管理;用 pending 更清晰。
  6. 多作者署名用 PublishPress Authors,但主题还在用 the_author(),前台只显示投稿者。
  7. 稿酬计算依赖 post_date,导致延期发布的稿件被算到错误月份,应改用实际发布日期。WordPress 内容与权限管理

总结

多作者站的判断标准是:作者投稿门槛是否低于写邮件、编辑是否一眼分清待处理件、账是否自动算得清。行动清单:角色与后台隔离 → 前端投稿 → 稿件进 pending → 自动打标与统计 → 周期结算表。别过早追求”作者积分等级”,先把链路跑通,作者体验自然会上来。

U
UFO_PF作者

专注 WordPress 生态的实战作者,内容以「可复制、可验证」为第一原则。

留下你的想法

邮箱地址不会被公开。带 * 的为必填项。