Trucco per far apparire i custom post type su una pagina di tassonomia personalizzata?
Ho configurato un custom post type e una tassonomia personalizzata per quel post type, ma ho un problema - nelle pagine dei permalink della tassonomia personalizzata, il contenuto del custom post che dovrebbe essere visualizzato non appare. Tuttavia, guardando il codice sorgente della pagina, posso vedere che c'è un div che dovrebbe contenere il contenuto del post.
Qualche suggerimento su come far visualizzare l'intero contenuto?
Modifica: Il plugin Custom Post Types UI è stato utilizzato per la creazione dei custom post type e delle tassonomie personalizzate.
Modifica 2: Si è scoperto che era un problema di Thesis. Design Options > Display Options > Archives era impostato su "solo titoli", il che impediva la visualizzazione del contenuto dei post.

Prova questo, aggiungilo al tuo file functions.php
add_filter( 'pre_get_posts', 'include_tax_posts' );
function include_tax_posts( $query ) {
// Controlla se è una pagina di tassonomia e se i filtri non sono soppressi
if ( is_tax() && false == $query->query_vars['suppress_filters'] )
// Imposta i tipi di post da includere (post, page e il tuo tipo personalizzato)
$query->set( 'post_type', array( 'post', 'page', 'IL_TUO_TIPO_DI_POST' ) );
return $query;
}

Niente da fare. Questo è sul tema Thesis, per quello che vale. Mi sono assicurato di aver inserito il tipo di post corretto - all'inizio era sbagliato, ma questo aveva rimosso il div dove dovrebbe esserci il contenuto. L'ho impostato sul tipo corretto, e il div è ancora lì, ma ancora senza contenuto.

hai bisogno di aggiornare i permalink dopo aver attivato il tuo custom post type? WordPress deve riscrivere i permalink. Puoi anche usare la funzione flush_rewrite_rules() durante l'init del tuo custom post type, vedi questo post per l'argomento http://wpengineer.com/2044/custom-post-type-and-permalink/

Temevo questo. C'è un modo programmatico per farlo, invece di scrivere una query per ogni voce nella tassonomia? Ad esempio, la mia tassonomia è "types" (di gioielli), e ho anelli, orologi, braccialetti, ecc. Dovrò usare un'istruzione condizionale per ogni tipo nel mio functions.php con una query per quel tipo specifico?

Ok, ho fatto un po' di ricerche e sembra che ci sia un ticket per risolvere questo problema nella versione 3.1. Fino ad allora, potresti provare a utilizzare questo plugin: http://wordpress.org/extend/plugins/simple-custom-post-type-archives/
L'altra opzione, dato che si tratta di Thesis, è utilizzare la loro API per loop personalizzati e creare una query da eseguire su tutte le pagine impostate da quella tassonomia/tipo di post.

La cosa che mi infastidisce è quel div vuoto. Significa che sta ciclando e restituendo il post, giusto? Ce n'è uno per ogni post e ha l'id corretto id="post_id", ecc.

Ecco due link:
http://core.trac.wordpress.org/ticket/13818 http://core.trac.wordpress.org/ticket/13816
C'è un sacco di discussioni su come verranno gestiti.

Se questo fosse un problema con WP che non mostra i tipi di post personalizzati nelle pagine delle tassonomie personalizzate, non ci sarebbe affatto un div con l'id del post - ti manca solo il contenuto dei post, mentre WP almeno si comporta come se avesse post da mostrare nella pagina della tassonomia personalizzata...

Non so se questo ti aiuterà dove sembra che tu stia usando un plugin per creare custom post type e tassonomie (non ho mai avuto molta fortuna con quelli). Questo è quello che ha fatto il mio sviluppatore per far apparire i post da una tassonomia personalizzata su una pagina di post personalizzata quando gli slug corrispondono. Simile a quello che stai facendo tu ma tecnicamente al contrario...
In Functions.php...
Crea relazione tra custom post type e tassonomia personalizzata
global $post_tax;
$post_tax = array(
'store' => array('post' => 'stores', 'tax' => 'store'),
'state' => array('post' => 'states', 'tax' => 'state')
);
Registra i post type
function post_types_custom_init() {
global $post_tax;
register_post_type($post_tax['store']['post'], array('label' => 'Negozi','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' => 'Stati','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')) );
}
Aggancia all'azione init e chiama create_post_type_taxonomies quando viene attivata
add_action( 'init', 'create_beer_taxonomies', 0 );
Crea tassonomie per i loro corrispondenti post type
function create_beer_taxonomies()
{
global $post_tax;
// Aggiungi nuova tassonomia
$labels = array(
'name' => _x( 'Negozi', 'taxonomy general name' ),
'singular_name' => _x( 'Negozio', 'taxonomy singular name' ),
'search_items' => __( 'Cerca Negozi' ),
'all_items' => __( 'Tutti i Negozi' ),
'parent_item' => __( 'Negozio Genitore' ),
'parent_item_colon' => __( 'Negozio Genitore:' ),
'edit_item' => __( 'Modifica Negozio' ),
'update_item' => __( 'Aggiorna Negozio' ),
'add_new_item' => __( 'Aggiungi Nuovo Negozio' ),
'new_item_name' => __( 'Nome Nuovo Negozio' ),
);
// Rendila gerarchica (come le categorie) e assegnale a specifici post type
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( 'Stati', 'taxonomy general name' ),
'singular_name' => _x( 'Stato', 'taxonomy singular name' ),
'search_items' => __( 'Cerca Stati' ),
'all_items' => __( 'Tutti gli Stati' ),
'parent_item' => __( 'Stato Genitore' ),
'parent_item_colon' => __( 'Stato Genitore:' ),
'edit_item' => __( 'Modifica Stato' ),
'update_item' => __( 'Aggiorna Stato' ),
'add_new_item' => __( 'Aggiungi Nuovo Stato' ),
'new_item_name' => __( 'Nome Nuovo Stato' ),
);
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' ),
));
}
Nel Template/Loop
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);
<INSERISCI LOOP(S) QUI>
wp_reset_query();
}
Credo* che sia tutto. Non sarai in grado di copiare-incollare quel codice e farlo funzionare automaticamente per te, ma spero che ti dia un'idea su come farlo funzionare. Questa era roba all'avanguardia all'epoca, completata circa 6 mesi fa e immagino che ci sia un'implementazione migliore da qualche parte. Sfortunatamente, il sito non è ancora online quindi nulla da mostrare al momento.
Abbiamo anche dovuto reindirizzare (htaccess) quegli slug per le tassonomie poiché volevamo che quelli che cercavano il negozio (post type) e l'archivio per i negozi (tassonomia) finissero sulla stessa pagina dove la 'pagina profilo' del negozio mostrava entrambi.
Quindi il risultato finale è che la pagina archivio per domain.com/stores-bp/walmart reindirizzerà a domain.com/stores/walmart.
Troppo confuso! Posso provare a chiarire dove necessario.
