取消发布具有未完成字段的作者

时间:2016-04-24 作者:Kevin Mamaqi

我想取消发布没有填写我创建的所有额外字段的用户配置文件。

我使用自定义meta_query 在用户分类法中,以筛选那些作者,这是可行的,但它不在author 模板。

function unpublish_not_full_authors( $query ) {
    if ( $query->is_author() && $query->is_main_query() ) {
            // your code to set $current_user_name here
            $query->set( \'meta_query\', array(
                \'relation\' => \'AND\',
                array(
                  \'key\'     => \'descripcion_breve\',
                  \'compare\' => \'EXISTS\',
                ),
                array(
                  \'key\'     => \'titulacion_preparador\',
                  \'compare\' => \'EXISTS\',
                ),
              )
            );
    }
}
add_action( \'pre_get_posts\', \'unpublish_not_full_authors\' );

EDIT TO CLARIFY:

当用户在我的网站上注册时,他/她会得到一个指向他的网站的URL:example。com/author/my\\u配置文件。

我想要的是“取消发布”这个公共配置文件,直到作者没有填写我使用ACF创建的几个字段为止。

1 个回复
最合适的回答,由SO网友:corvidism 整理而成

您正在执行类似本教程的操作categorizing wordpress users, 对的

我认为你应该在你的主题文件中进行过滤,而不是挂机。只需将if语句添加到模板文件(可能是author.php) 测试自定义字段是否不是空字符串,然后执行任何操作(404,重定向到其他位置,抛出通知…)

除非您需要特别设置一个参数来说明作者是否公开(例如,您计划编写后端用户管理GUI或类似的东西),否则通过主题文件隐藏用户应该是最简单的方法。

相关推荐

Get_the_Author_meta()和Get_User_meta()有什么不同?

我有个问题:get_the_author_meta() 返回元get_user_meta() 对于相同的元键返回false,我不知道为什么会发生这种情况。关于用户元数据,我应该何时使用其中一种?I tried this:get_the_author_meta(\'afzfp_user_status\', $user->ID); get_user_meta(\'afzfp_user_status\', $user->ID, true); It returns:String \"t