如何为WordPress博客添加自定义可编辑复选框属性?
如何在WordPress站点编辑页面添加自定义站点属性复选框
可以实现自定义站点属性的添加,核心是利用WordPress针对站点(Site)级别提供的钩子来完成字段渲染和数据保存,以下是具体方案:
1. 核心钩子说明
针对多站点环境的「编辑站点」页面,WordPress提供了两个关键钩子:
wpmu_edit_site_form_fields:用于在站点编辑表单中插入自定义字段edit_site_update:用于在站点信息更新时保存自定义属性数据
如果是单站点环境,可将钩子替换为admin_init(用于在站点设置页面添加字段)和update_option_{option_name}(保存数据),逻辑类似。
2. 代码实现示例
步骤1:添加自定义复选框到站点编辑页面
// 在多站点的站点编辑页面插入自定义复选框 add_action( 'wpmu_edit_site_form_fields', 'render_custom_site_attribute_checkbox' ); function render_custom_site_attribute_checkbox( $blog ) { // 获取当前站点已保存的属性值,默认未勾选 $is_featured = get_site_option( 'site_is_featured', false, $blog->blog_id ); ?> <tr class="form-field"> <th scope="row"><label for="site_is_featured">精选站点</label></th> <td> <input type="checkbox" name="site_is_featured" id="site_is_featured" <?php checked( $is_featured, true ); ?> /> <p class="description">标记该站点为平台精选站点</p> </td> </tr> <?php }
步骤2:保存自定义属性数据
// 保存站点更新时的自定义属性 add_action( 'edit_site_update', 'save_custom_site_attribute_data' ); function save_custom_site_attribute_data( $blog_id ) { // 验证权限:仅允许管理站点的用户操作 if ( ! current_user_can( 'manage_sites' ) ) { return; } // 处理复选框提交数据:存在则为true,否则为false $featured_status = isset( $_POST['site_is_featured'] ) ? true : false; update_site_option( 'site_is_featured', $featured_status, $blog_id ); }
3. 扩展说明
- 你可以按照上述模式添加多个自定义复选框(比如
Verified、Premium等),只需复制代码块并修改属性名称和描述即可。 - 自定义属性数据存储在**站点选项(Site Option)**中,每个站点独立存储,和文章/页面的元数据逻辑一致,但属于站点级别。
- 若要在前端或其他后台场景调用该属性,直接使用
get_site_option( 'site_is_featured', false, $blog_id )即可获取值。
内容的提问来源于stack exchange,提问作者BorsodiGerii
相关产品推荐
相关产品推荐

