it-swarm.com.de

So erhalten Sie alle Tags eines benutzerdefinierten Beitragstyps anhand der ID

einfache frage, wie bekomme ich alle tags eines benutzerdefinierten beitragstyps nach id? post_type = Produkt.

ich habe es mit http://codex.wordpress.org/Function_Reference/wp_get_post_tags in meiner post-schleife versucht und das print_r gibt mir nichts zurück.

daher habe ich das versucht,

$term_list = wp_get_post_terms($post->ID, 'product_tag', array("fields" => "all"));
print_r($term_list);

und es bringt mir Tags in meine print_r($term_list); Danke

1
sohan

Loop-Ansatz: In der Regel Archiv- {custom_post} .php-Datei.

ZUERST:

custom_post_plural Steht für eine Gruppe von benutzerdefinierten Posts eines bestimmten Typs.

Beispiel für custom_post_plural: products

custom_post_singular Steht für einen individuellen benutzerdefinierten Beitragstyp.

Beispiel für custom_post_singular: product

ZWEITE:

var $ args_custom_post_plural sind die Parameter der WP_Query.

var $ custom_post_plural ist die Ausführung der Abfrage.

Ich habe var $ custom_post_plural_output verwendet, um den Inhalt des WP_Objects zu iterieren, und zwar mit dem Ausdruck posts , um den Inhalt "array-freundlich" zu gestalten.

Wie Sie sehen, habe ich teilweise Ahmad-Anweisungen für eine verschachtelte Iteration verwendet.

$args_custom_post_plural=array(
   'post_type' => 'custom_post_singular',
   'post_status' => 'publish', 
   'posts_per_page' => -1, 
   'fields' => 'ids', 
   'order_by' =>'id', 
   'order' => 'ASC'
);
$custom_post_plural = new WP_Query($args_custom_post_plural);
$custom_post_plural_output = $custom_post_plural->posts;
for ($i=0; $i < count($custom_post_plural_output); $i++) { 
   $tags = wp_get_post_tags($custom_post_plural_output[$i]);
   $buffer_tags ='';
   foreach ( $tags as $tag ) {
      $buffer_tags .= $tag->name . ',';
   }
}
echo $buffer_tags;

ENDLICH:

Zu Ihrer Information Wenn Sie dies in einer {custom_post} .php-Datei verwenden möchten, können Sie den folgenden Code verwenden:

$tags = wp_get_post_tags($post->ID);
foreach ( $tags as $tag ) {
   $buffer_tags .= $tag->name . ',';
}
echo $buffer_tags;

Da musst du einen verlinkten Beitrag haben, um irgendetwas anzuzeigen.

Fröhliches Codieren.

PS. @cjbj Warum zum Teufel hast du meine Bearbeitung gelöscht? Irgendetwas stimmt nicht oder was? Schreckliches Management hier und sehr bösartig, da ich aufgrund meiner Reputationspunkte nicht auf einen Kommentar antworten kann.

1
luis

Wenn Sie Tags per Post-ID erhalten möchten, können Sie die folgende Funktion verwenden. Dies funktioniert überall, da die Methode auf Datenbankabfragen basiert.

function sc_tf_get_tags_as_array($post_id){
        global $wpdb;
        $tbl_terms = $wpdb->prefix . "terms";
        $tbl_term_relationships = $wpdb->prefix . "term_relationships";

        $sql = "SELECT name FROM $tbl_terms WHERE term_id in (SELECT term_taxonomy_id FROM $tbl_term_relationships WHERE object_id='$post_id');";
        $results = $wpdb->get_results($sql);

        if($results){
            foreach($results as $row){
                $tags_list[] = $row->name;
            }
        }

        return $tags_list;
    }
1
chandima

wp_get_post_tags funktioniert nur für Beiträge, nicht für andere Beitragstypen. Wenn Sie nach /wp-includes/post.php schauen, werden Sie feststellen, dass die Funktion wp_get_post_terms aufgerufen wird, wobei $ taxonomy auf ' post_tag ' gesetzt ist:

function wp_get_post_tags( $post_id = 0, $args = array() ) {
    return wp_get_post_terms( $post_id, 'post_tag', $args );
}

Für Produkt-Tags oder andere Taxonomien können Sie get_the_terms () verwenden:

$tags = get_the_terms( $prod_id, 'product_tag' );
$tags_names = array();
if ( ! empty( $tags ) ) {
    foreach ( $tags as $tag ) {
        $tags_names[] = $tag->name;
    }
}
0
David Najman