Steve, você fez algumas perguntas que eu dei uma olhada, e cheguei à conclusão de que o seu loop está causando todas as suas dores de cabeça.
Meu loop para exibir TODOS os posts é:
$args = array( 'post_type' => 'design_asset', 'posts_per_page' => 100, 'orderby' => 'title', 'order' => 'ASC' ); $loop = new WP_Query( $args ); while ( $loop->have_posts() ) : $loop->the_post();
Loops personalizados em qualquer página de arquivo criam problemas. A consulta principal é bastante específica nessas páginas e essas consultas são difíceis de serem reproduzidas em uma consulta personalizada. Para ter uma idéia de como a consulta principal funciona e como a consulta principal decide o que mostrar, vá e confira minha resposta sobre essa questão
Aconselho-o a não utilizar qualquer consulta personalizada para o seu loop principal em qualquer página de arquivo ou mesmo na página inicial.
Meu conselho seria alterar todos os seus loops em todos os seus modelos de volta ao loop padrão
if ( have_posts() ) :
while ( have_posts() ) : the_post();
<----LOOP ELEMENTS---->
endwhile;
endif;
Depois de voltar para o loop padrão, você verá que tudo funcionará normalmente, exceto que o tipo de postagem personalizado não será incluído no loop principal.
Para corrigir isso, você usará pre_get_posts
para adicionar seu tipo de postagem personalizado e outra modificação à consulta principal
function include_cpt( $query ) {
if ( !is_admin() && $query->is_main_query() ) {
$query->set( 'post_type', 'design_asset' );
$query->set( 'posts_per_page', '100' );
$query->set( 'orderby', 'title' );
$query->set( 'order', 'ASC' );
}
}
add_action( 'pre_get_posts', 'include_cpt' );
Isso deve ter tudo funcionando normalmente e como esperado