Truco para mostrar tipos de entradas personalizadas en una página de taxonomía personalizada
He configurado un tipo de entrada personalizada y una taxonomía personalizada para ese tipo de entrada, pero tengo un problema: en las páginas de enlaces permanentes de la taxonomía personalizada, no se muestra el contenido de la entrada personalizada que debería estar allí. Sin embargo, al ver el código fuente de la página, puedo ver que hay un div que debería contener el contenido de la entrada.
¿Alguna sugerencia sobre cómo hacer que se muestre todo el contenido?
Edición: Se utilizó el plugin Custom Post Types UI para la creación de los tipos de entradas personalizadas y las taxonomías personalizadas.
Edición 2: Resultó ser un problema de Thesis. Opciones de diseño > Opciones de visualización > Archivos estaba configurado como "solo títulos", lo que evitaba que se mostrara el contenido de las entradas.

Prueba esto, añadiéndolo a tu archivo de funciones
add_filter( 'pre_get_posts', 'include_tax_posts' );
function include_tax_posts( $query ) {
if ( is_tax() && false == $query->query_vars['suppress_filters'] )
$query->set( 'post_type', array( 'post', 'page', 'TU_TIPO_DE_POST' ) );
return $query;
}

No hay suerte. Esto es en el tema Thesis, para lo que valga. Me aseguré de tener el tipo de publicación correcto ahí - al principio estaba mal, pero eso eliminó el div donde debería estar el contenido. Lo configuré al tipo correcto, y el div sigue ahí, pero aún sin contenido.

¿tienes que actualizar los enlaces permanentes después de activar tu tipo de publicación personalizada? WP debe escribir los enlaces permanentes de nuevo. También puedes usar la función flush_rewrite_rules() en el init de tu tipo de publicación personalizada, mira este post sobre este tema http://wpengineer.com/2044/custom-post-type-and-permalink/

Temía que fuera así. ¿Hay alguna manera programática de hacer eso, en lugar de escribir una consulta para cada entrada en la taxonomía? Es decir, mi taxonomía es "types" (de joyería), y tengo anillos, relojes, pulseras, etc. ¿Necesitaré una declaración condicional para cada tipo en mi functions.php con una consulta para ese tipo en particular?

Ok, hice un poco de investigación y parece que hay un ticket para solucionar esto en la versión 3.1. Hasta entonces, quizás quieras probar usando este plugin: http://wordpress.org/extend/plugins/simple-custom-post-type-archives/
La otra opción, dado que es Thesis, es usar su API de loops personalizados y crear una consulta para ejecutar en todas las páginas configuradas desde esa taxonomía/tipo de post.

Lo que me molesta es ese div vacío. Eso significa que está iterando y devolviendo el post, ¿verdad? Hay uno por cada post y tiene el id="post_id" correcto, etc.

Aquí hay dos:
http://core.trac.wordpress.org/ticket/13818 http://core.trac.wordpress.org/ticket/13816
Hay mucho debate sobre cómo se van a manejar.

Si este fuera un problema con WP que no muestra los tipos de entradas personalizadas en las páginas de taxonomías personalizadas, no habría ningún div con el ID de la publicación en absoluto - simplemente te faltan los contenidos de las publicaciones, mientras que WP al menos actúa como si tuviera publicaciones para mostrar en la página de taxonomía personalizada...

No sé si esto te ayudará, pero parece que estás usando un plugin para crear tipos de contenido personalizados y taxonomías (nunca he tenido mucha suerte con esos). Esto es lo que mi desarrollador hizo para mostrar publicaciones de una taxonomía personalizada en una página de contenido personalizado cuando los slugs coinciden. Similar a lo que estás haciendo pero técnicamente al revés...
En Functions.php...
Crear relación entre tipo de contenido personalizado y taxonomía personalizada
global $post_tax;
$post_tax = array(
'store' => array('post' => 'stores', 'tax' => 'store'),
'state' => array('post' => 'states', 'tax' => 'state')
);
Registrar tipos de contenido
function post_types_custom_init() {
global $post_tax;
register_post_type($post_tax['store']['post'], array('label' => 'Tiendas','public' => true,'show_ui' => true,'_builtin' => false, 'capability_type' => 'post','hierarchical' => true,'rewrite' => array('slug' => 'stores'),'query_var' => true,'supports' => array('title','editor','excerpt','trackbacks','custom-fields','comments','revisions','thumbnail','author','page-attributes')) );
register_post_type($post_tax['state']['post'], array('label' => 'Estados','public' => true,'show_ui' => true,'_builtin' => false, 'capability_type' => 'post','hierarchical' => true,'rewrite' => array('slug' => 'states'),'query_var' => true,'supports' => array('title','editor','excerpt','trackbacks','custom-fields','comments','revisions','thumbnail','author','page-attributes')) );
}
Conectar a la acción init y llamar a create_post_type_taxonomies cuando se active
add_action( 'init', 'create_beer_taxonomies', 0 );
Crear taxonomías para sus tipos de contenido correspondientes
function create_beer_taxonomies()
{
global $post_tax;
// Añadir nueva taxonomía
$labels = array(
'name' => _x( 'Tiendas', 'taxonomy general name' ),
'singular_name' => _x( 'Tienda', 'taxonomy singular name' ),
'search_items' => __( 'Buscar Tiendas' ),
'all_items' => __( 'Todas las Tiendas' ),
'parent_item' => __( 'Tienda Padre' ),
'parent_item_colon' => __( 'Tienda Padre:' ),
'edit_item' => __( 'Editar Tienda' ),
'update_item' => __( 'Actualizar Tienda' ),
'add_new_item' => __( 'Añadir Nueva Tienda' ),
'new_item_name' => __( 'Nombre de Nueva Tienda' ),
);
// Hacerla jerárquica (como categorías) y asignar a tipos de contenido específicos
register_taxonomy($post_tax['store']['tax'],
array('post',$post_tax['review']['post']),
array(
'hierarchical' => true,
'labels' => $labels,
'show_ui' => true,
'query_var' => true,
'rewrite' => array( 'slug' => 'stores-bp' ),
));
$labels = array(
'name' => _x( 'Estados', 'taxonomy general name' ),
'singular_name' => _x( 'Estado', 'taxonomy singular name' ),
'search_items' => __( 'Buscar Estados' ),
'all_items' => __( 'Todos los Estados' ),
'parent_item' => __( 'Estado Padre' ),
'parent_item_colon' => __( 'Estado Padre:' ),
'edit_item' => __( 'Editar Estado' ),
'update_item' => __( 'Actualizar Estado' ),
'add_new_item' => __( 'Añadir Nuevo Estado' ),
'new_item_name' => __( 'Nombre de Nuevo Estado' ),
);
register_taxonomy($post_tax['state']['tax'],
array('post',$post_tax['beer']['review']),
array(
'hierarchical' => true,
'labels' => $labels,
'show_ui' => true,
'query_var' => true,
'rewrite' => array( 'slug' => 'states-bp' ),
));
}
En Plantilla/Bucle
function meta_loop_beers($queried_tax,$queried_term){
//$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$queried_page = get_query_var('paged');
$paged = $queried_page ? $queried_page : 1;
$post_type = '';
global $post_tax;
foreach($post_tax as $relation){
if( $relation['tax'] == $queried_tax ){
$post_type = $relation['post'];
break;
}
}
$args=array(
'post_type' => 'post',
$queried_tax => $queried_term,
'post_status' => 'publish',
'posts_per_page' => -1,
'caller_get_posts'=> 1
);
$my_query = null;
$my_query = new WP_Query($args);
<COLOCA AQUÍ TUS BUCLES>
wp_reset_query();
}
Creo* que eso es todo. No podrás copiar-pegar ese código y que funcione automáticamente para ti, pero espero que te dé una idea de cómo hacer que funcione. Esto era tecnología de vanguardia en su momento, completado hace unos 6 meses y supongo que hay una implementación mejor en algún lado. Desafortunadamente, el sitio aún no está en vivo, así que no hay nada que mostrar en este momento.
También tuvimos que redirigir (htaccess) esos slugs para las taxonomías porque queríamos que quienes buscaran la tienda (tipo de contenido) y el archivo para las tiendas (taxonomía) aterrizaran en la misma página donde la 'página de perfil' de la tienda mostraba ambos.
Así que el resultado final es que la página de archivo para dominio.com/stores-bp/walmart redirigirá a dominio.com/stores/walmart.
¡Demasiado confuso! Puedo intentar aclarar donde sea necesario.
