2015-04-27 5 views
16

Ich habe meine benutzerdefinierten Post-Typ namens ‚Sektoren‘, indem Sie den Code unten ein:Sammeln Individuelle Post-Typen über Tags

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'), 
    )); 
} 

Das hat mir erlaubt ‚Tags‘ auf die benutzerdefinierte Post-Typ Seiten hinzufügen.

Jetzt versuche ich Seiten von diesen benutzerdefinierten Post-Typen durch bestimmte Tags anzuzeigen.

Ich habe es geschafft, dies mit den Beiträgen zu tun, indem Sie den folgenden Code:

<?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(); ?> 

Dies wird alle Beiträge erhalten, die den Tag ‚featuredpost1‘ haben.

Wie ist das mit benutzerdefinierten Post-Typen möglich?

EDIT/UPDATE:

Dies funktioniert jetzt, ist es eine Möglichkeit, diese Funktionalität auf einer anderen Seite verwenden kann? Zum Beispiel, auf meiner Homepage erhalten Sie die Beiträge per Tags, also was auf dieser Seite aktualisiert wird, wird auf der Homepage aktualisiert?

+0

Wer hat irgendwelche Ideen? –

+0

hast du "post-type" => "sectors" zu deinen args hinzugefügt? –

+1

Auf welcher Seite/Vorlage machst du das? Brauchen Sie wirklich eine benutzerdefinierte Abfrage –

Antwort

12

Wordpress Query Parameters

Wenn Sie hinzufügen ::

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

oder

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

Dies wird Ihnen helfen, Ihre Anfrage Ihre Post Typ Ziel.

Es wird aussehen wie

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

Danke, das hat perfekt funktioniert! Danke auch an Zork für Ihre Antwort und Selva. –

2

Lösung Cayce Ks perfekt funktioniert. Ich habe eine zweite Möglichkeit zu bieten:

Zuerst: Fügen Sie Ihre benutzerdefinierte Beitragstyp der Hauptabfrage hinzu. Sie können dies erreichen, indem Sie ein paar Zeilen zu Ihrem functions.php hinzufügen.

<?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; 
    } 
?> 

Zweitens: Nach tun können Sie die archive.php verwenden, die tag.php oder ein tag-myTagName.php in Ihrem Thema eine Archiv-Seite für diesen Tag einschließlich Ihrem benutzerdefinierten Beitrags Type ‚Sektoren‘ zu zeigen. Sie müssen keine spezielle Abfrage einrichten, fügen Sie einfach einen Link zum gewünschten Tag zu einem Ihrer Menüs hinzu - Ihre Standardschleife erledigt den Rest.

Hinweis:

Wenn Sie wollen einfach nur eine Archiv-Seite für Ihren kompletten kundenspezifische Beitrag Type 'Sektoren erstellen können Sie auch die WP verwenden Plugin Post Type Archive Link.

+0

schön aus der Box denken. Das ist etwas Spaß Wissen zu haben. Danke für das Posten dieser Antwort! –

1

Wenn für eine benutzerdefinierte Post Art der Suche mit Tag-Name bedeutet, Sie müssen angeben, dass in der Abfrage Argumenten:

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

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

    the_title(); 

    endwhile; ?> 

Auch dies wird Ihnen helfen, ...