Consulta para obter dados de uma postagem, se na categoria?

Você pensaria que poderia usar

$query = new WP_Query(array( 'p' => $idofpost, 'cat' => $numbers )); 

para retornar a postagem se for uma determinada categoria (ou categorias, ou -número para excluir uma categoria).

Curiosamente, ele sempre retorna o post, e olhando para $query->request parece que o sql que ele executa não tem nenhuma menção de categoria / taxonomia.

Isso é um bug ou estou faltando alguma coisa?

Solutions Collecting From Web of "Consulta para obter dados de uma postagem, se na categoria?"

Sua consulta não funcionará, pois simplesmente ignorará sua consulta de taxonomia. Este não é um bug, mas um comportamento esperado.

Ao usar p como seu parâmetro, todos os outros parâmetros de consulta são ignorados / ignorados, como, por exemplo, post_type , tax_query e quaisquer consultas relacionadas à taxonomia, como categoria e parâmetros de tags, devido ao fato de você estar consultando diretamente postagens específicas por referência.

Não tenho certeza do que você está tentando alcançar aqui, mas você precisa dar uma olhada no WP_Query e todos os seus parâmetros disponíveis e usar aqueles que são diretamente relevantes para o que você precisa. Além disso, isso pode ser um problema estrutural ou de planejamento do seu lado, que talvez precise de você repensar o que você está tentando fazer e alcançar

EDITAR

Dos comentários

Esse tipo de sentido, mas na verdade has_password, post_status, talvez outros, irá filtrar corretamente se deve ou não retornar o post neste caso

Que você tem que ir brincar e verificar a solicitação SQL. AFAIK, se você estiver consultando diretamente uma postagem com p , ela retornará a publicação independentemente. Ainda não compreendo completamente o que acontece exatamente dentro da class WP_Query .

O código fonte atual para o comprometimento da class WP_Query de 3716 linhas de código, que está excluindo a primeira seção no arquivo query.php onde as funções condicionais são definidas

Isso é muito demais para envolver sua cabeça. IMHO, acho que a melhor maneira será testar-se e testar diferentes cenários e verificá-lo contra o código-fonte. Eu realmente não acredito que este seja um dia de trabalho. Você ficará louco se você realmente tentar entender e saber o que está acontecendo no WP_Query em um dia ou dois, talvez também um mês 🙂