我想取消发布没有填写我创建的所有额外字段的用户配置文件。
我使用自定义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创建的几个字段为止。
最合适的回答,由SO网友:corvidism 整理而成
您正在执行类似本教程的操作categorizing wordpress users, 对的
我认为你应该在你的主题文件中进行过滤,而不是挂机。只需将if语句添加到模板文件(可能是author.php
) 测试自定义字段是否不是空字符串,然后执行任何操作(404,重定向到其他位置,抛出通知…)
除非您需要特别设置一个参数来说明作者是否公开(例如,您计划编写后端用户管理GUI或类似的东西),否则通过主题文件隐藏用户应该是最简单的方法。