Remova tags sem uma meta-chave específica de “escolha das tags mais usadas”

Estou tentando mostrar apenas as tags associadas ao autor atualmente logado; Eu tenho esse 99% de trabalho, mas o autor ainda pode escolher tags associadas a outros usuários através do link “Escolher do tags mais usados”.

Como posso editar isso para excluir todas as tags cuja meta tag “autor” não corresponde à ID do usuário atualmente logada?

Estou usando esta solução para limitar tudo o resto.

Solutions Collecting From Web of "Remova tags sem uma meta-chave específica de “escolha das tags mais usadas”"

Então, essa nuvem de tags parece ser uma nuvem de tag comum gerada por uma solicitação AJAX. Esta checkbox parece ser o único lugar em que um tagcloud é gerado via AJAX, para que possamos usar esse conhecimento para usar o filtro get_terms para filtrar quaisquer consultas de termo realizadas nesse pedido AJAX.

 function wpse_277075_filter_tag_cloud( $terms, $taxonomies, $args, $term_query ) { if ( is_admin() && isset( $_POST['action'] ) && $_POST['action'] === 'get-tagcloud' ) { $args['meta_query'] = array( array( 'key' => 'author', 'value' => get_current_user_id(), ) ); $terms = $term_query->query( $args ); return $terms; } return $terms; } add_filter( 'get_terms', 'wpse_277075_filter_tag_cloud', 10, 4 ); 

Dentro do get_terms filtro get_terms , get_terms a get_terms $_POST['action'] porque isso nos informará se estamos no pedido AJAX. Em seguida, re-executamos a consulta da tag, mas desta vez com uma meta_query filtra os resultados.

Nota: Este código assume que o autor é configurado através de uma meta_key de author que é definida como uma ID de usuário.