2015-04-27 18 views
16

ho esposto il mio tipo di messaggio personalizzato denominato 'settori', usando il codice seguente:tipi di messaggi Gathering personalizzati tramite tag

register_post_type('sectors', 
    array(
     'labels' => array(
      'name'   => __('Sectors'), 
      'singular_name' => __('sectors'), 
     ), 
     'has_archive' => true, 
     'hierarchical' => true, 
     'menu_icon' => 'dashicons-heart', 
     'public'  => true, 
     'rewrite'  => array('slug' => 'your-cpt', 'with_front' => false), 
     'supports'  => array('title', 'editor', 'author', 'thumbnail', 'excerpt', 'trackbacks', 'custom-fields', 'revisions', 'page-attributes'), 
     'taxonomies' => array('your-cpt-type', 'post_tag'), 
    )); 
} 

questo mi ha permesso di aggiungere 'tag' alle pagine tipo di messaggi personalizzati.

Ora, sto cercando di visualizzare le pagine Fron Questa personalizzati tipi di messaggi da parte di alcuni tag.

sono riuscito a farlo con i messaggi, utilizzando il seguente codice:

<?php 
    $args = array('tag_slug__and' => array('featuredpost1')); 
    $loop = new WP_Query($args); 
    while ($loop->have_posts()) : $loop->the_post(); 
?> 
<h5 class="captext"><?php the_title(); ?></h5> 
<hr> 

<div style="float: left; padding-right:20px;"> 
    <?php the_post_thumbnail('thumb'); ?> 
</div> 

<?php the_excerpt(); ?> 
<a href="<?php echo get_permalink(); ?>"> Read More...</a> 

<?php endwhile; ?> 
<?php wp_reset_query(); ?> 

questo otterrà tutti i messaggi che hanno il tag 'featuredpost1'.

Come è possibile con i tipi di messaggi personalizzati?

EDIT/UPDATE:

Questo funziona ora, c'è un modo posso usare questa funzionalità su una pagina diversa? Ad esempio, nella mia home page ottengo i post tramite tag, quindi tutto ciò che viene aggiornato su questa pagina si aggiornerà sulla home page ??

+0

Qualcuno ha qualche idea? –

+0

hai aggiunto '" post-type "=>" settori "' ai tuoi argomenti? –

+1

Su quale pagina/modello stai facendo questo. Hai davvero bisogno di una query personalizzata –

risposta

12

Wordpress Query Parameters

Se si aggiunge ::

$args = array(
    'post_type' => array('sectors') //, 'multiple_types_after_commas') 
); 
$query = new WP_Query($args); 

o

$query = new WP_Query('post_type=sectors'); 

Questo vi aiuterà a indirizzare il tipo di post con la vostra richiesta.

Sembrerà

$args = array(
    'tag_slug__and' => array('featuredpost1'), 
    'post_type' => array('sectors') 
); 
$loop = new WP_Query($args); 
while ($loop->have_posts()) : $loop->the_post(); 
+1

Grazie, ha funzionato perfettamente! Inoltre, grazie a Zork per la risposta, e Selva. –

2

soluzione di Cayce K funzionerà perfettamente. Ho un secondo modo di offrire:

Primo: Aggiungi il tuo tipo di messaggio personalizzato alla query principale. Puoi ottenerlo aggiungendo alcune linee al tuo functions.php.

<?php 
add_action('pre_get_posts', 'add_my_post_types_to_query'); 
    function add_my_post_types_to_query($query) { 
     // Leave the query as it is in admin area 
     if(is_admin()) { 
      return $query; 
     } 
     // add 'sectors' to main_query when it's a tag- or post-archive 
     if (is_tag() && $query->is_main_query() || is_archive() && $query->is_main_query()) 
     $query->set('post_type', array('post', 'page', 'sectors', 'add_more_here')); 
     return $query; 
    } 
?> 

Secondo: Dopo questo modo è possibile utilizzare il archive.php, la tag.php o un tag-myTagName.php nel tema per mostrare un archivio pagine per quel tag compreso il vostro misura Tipo Post 'settori'. Non dovrai impostare una query speciale, basta aggiungere un link al tag desiderato a uno dei tuoi menu - il tuo ciclo standard farà il resto.

Suggerimento:

Quando si desidera solo per creare un archivio-page per il vostro completo a misura Tipo Post 'settori' è anche possibile utilizzare il plugin WP Post Type Archive Link.

+0

bello fuori dagli schemi pensando. questa è una conoscenza divertente da avere. grazie per aver postato questa risposta! –

1

Se cercate un tipo di messaggio personalizzato con mezzi nome del tag, è necessario specificare che negli argomenti di query:

<?php $query = new WP_Query(array("post-type" => "sectors", "tag" => "featuredpost1")); 

    while ($query->have_posts()) : $query->the_post(); 

    the_title(); 

    endwhile; ?> 

maggio questo vi aiuterà ...