it-swarm.com.de

Wie liste ich alle Kategorien und Tags auf einer Seite auf?

Angenommen, wir haben nur wenige Kategorien, Tags und benutzerdefinierte Beitragstypen und Taxonomien. Wie können wir alle Kategorien und Tags auf einer Seite auflisten? So etwas wie;

Seite

Kategorieminiatur und Kategoriename 1 (Link zur Kategorieseite) Beschreibung

Kategorieminiatur und Kategoriename 2 (Link zur Kategorieseite) Beschreibung

Kategorieminiatur und Kategoriename 3 (Link zur Kategorieseite) Beschreibung

Teiler

Tag-Miniaturansicht und Tag-Name 1 (Link zur Tag-Seite) Beschreibung

Tag-Miniaturansicht und Tag-Name 2 (Link zur Tag-Seite) Beschreibung

Tag-Miniaturansicht und Tag-Name 3 (Link zur Tag-Seite) Beschreibung

Dasselbe gilt für benutzerdefinierte Beitragstypen und Taxonomien.

Und wenn die Beschreibung und das Vorschaubild nicht möglich sind, ist nur ein Name mit Link ausreichend.

Das meiste davon kann mit diesen Plugins erreicht werden.

Im Moment suche ich im Plugin-Code, um das zu erreichen, was ich will.

4

TERM METADATA

Mit den neuen Term-Metadaten in 4.4 können Thumbnails für Terme abgerufen werden. Sie müssen diese nur vorab selbst definieren.


KATEGORIEN

get_categories () Gibt ein Array von Kategorieobjekten zurück, die mit den Abfrageparametern übereinstimmen.

echo "Categories:<br/>";

$args = array( 
    'orderby'                  => 'name',
    'order'                    => 'ASC', 
    'public'                   => true,
); 

$categories = get_categories( $args );

foreach ( $categories as $category ) {
     echo '<a href="' . get_category_link( $category ) . '">' . $category->name . '</a><br/>';
}

echo "<hr>"; // divider

TAGS

get_tags () Ruft ein Array von Objekten für jeden Begriff in der post_tag-Taxonomie ab.

echo "Tags:<br/>";

$args = array( 
    'orderby'                  => 'name',
    'order'                    => 'ASC',
    'public'                   => true,
); 

$tags = get_tags( $args );

foreach ( $tags as $tag ) {
     echo '<a href="' . get_tag_link( $tag ) . '">' . $tag->name . '</a><br/>';
}

TAXONOMIEN

get_taxonomies () Liste der registrierten Taxonomieobjekte abrufen.

echo "Taxonomies:<br/>";

$args = array(  
    '_builtin'                 => false, 
    'public'                   => true,
); 

$taxonomies = get_taxonomies( $args, 'objects' ); 

foreach ( $taxonomies as $taxonomy ) {
    echo '<p>' . $taxonomy->labels->name . '</p>';
}

POST TYPES

get_post_types () Gibt die registrierten Post-Typen zurück wie in $ wp_post_types gefunden. get_posts () erstellt ein Array von Posts basierend auf einer Reihe von Parametern, verwenden Sie es also mit Ihrer post_type_list.

echo "Post Types:<br/>";

$args = array(
    'public'   => true,
    '_builtin' => false,
);
$output = 'names'; // names or objects, note names is the default
$operator = 'and'; // 'and' or 'or'
$post_types = get_post_types($args, $output, $operator);

// get all the posts for all post_types

$posts = get_posts(array(
                           'post_type'   => $post_types,
                           'numberposts' => - 1,
                           'orderby'     => 'post_type',
                           'order'       => 'ASC',
                           'post_status' => array( 'publish' ),
                           'public'      => true,
                       ));

foreach($posts as $post) {

    $link = get_permalink($post);
    $title = $post->post_title;

    if($post_type !== $post->post_type) {
        $post_type = $post->post_type;
        echo '</br/><p>' . $post_type . '</p></br/>';
    }

    // show link to post

    echo "<p><a href=\"$link\">$title</a></p>";
}

TRANSIENTES CACHING

Wenn Sie die Ergebnisse all dieser Abfragen zwischenspeichern möchten, ziehen Sie die Transients-API in Betracht. Dadurch wird das Ergebnis für eine begrenzte Zeit in der Datenbank gespeichert (was Sie ~ anfordern ~). Es ist kein bestimmter Zeitrahmen, da Plugins wie WP Optimize den Cache jederzeit leeren können.

// check if the value exists using the key -- if it fails then we'll generate the content

if(false === ($trans_value = get_transient($trans_key = 'my_transient_key'))) {

    print_r('NO CACHE FOR ' . $trans_key); // (debug output)

    // start the output buffer to capture our generated content

    ob_start();

    // run your expensive operations -- data sent to the screen will be captured

    print_r('This is an expensive operation!');

    // using ob_get_clean we'll store the results and set the value variable.

    // double check the amount of time you want to keep the data cached
    // set to 0 for auto loading on every page hit.

    set_transient($trans_key, $trans_value = ob_get_clean(), 1 * MINUTE_IN_SECONDS);
}
else {
    print_r('THIS IS A CACHED RESULT FOR ' . $trans_key); // (debug output)
}

// value is ready and cached
print_r("<pre>$trans_value</pre>");

Um den Wert zu löschen, löschen Sie einfach mit der Taste.

delete_transient ( $trans_key );
3
jgraup