我认为显示月度报告(据我所知,是个性化的)不应该公开显示,而应该始终在登录后显示。我认为这也显示了对阅读这些报告的人更专业一点,此外,当你可以将用户与某些操作“连接”起来时,你可以做得更多。
我理解我的建议可能不是你想要的确切答案,但在我看来,这是一种更好、更安全的方法。如果您的报告扩展了“敏感”信息,那么您仍然需要登录。
我会使用pre_get_posts
在“自定义分类法”页面上。首先检查用户ID及其匹配的术语(您可以在term meta). 像这样的(从我的头顶上看,虽然没有经过测试,但它给了你一个很好的主意)。
您确实需要(找到一种方法)在要查询的用户id中存储术语meta。
function wpse294132_override_tax_archive( $query ) {
if ( ! is_admin() && $query->is_main_query() && is_tax( \'your_custom_taxonomy\' ) ) {
$user_term_meta = get_user_meta( get_current_user_id(), \'custom_field_key\', true );
$query->set( \'tax_query\', array(
array(
\'taxonomy\' => \'your_custom_taxonomy\',
\'field\' => \'term_id\',
\'terms\' => $user_term_meta,
\'compare\' => \'=\'
),
) );
}
}
add_action( \'pre_get_posts\', \'wpse294132_override_tax_archive\' );