WordPress: Links für die Funktion get_the_category_list deaktivieren?

Lesezeit: 2 Minuten

Hey, mein Theme verwendet diese Funktion, um die Kategorien eines Beitrags anzuzeigen, aber es erstellt auch Links, die ich gerne loswerden würde. Ich bevorzuge PHP statt einer Javascript-Lösung.

Hier ist der Code:

<p class="postmeta">
    <?php if ( 'post' == get_post_type() ) : // Hide category and tag text for pages on Search ?>
        <?php
            /* translators: used between list items, there is a space after the comma */
            $categories_list = get_the_category_list( __( ', ', 'gridster' ) );
            if ( $categories_list && gridster_categorized_blog() ) :
        ?>
            <?php /*printf( __( '%1$s', 'gridster' ), $categories_list );*/ echo $categories_list; ?>
        <?php endif; // End if categories ?>


    <?php endif; // End if 'post' == get_post_type() ?>
</p>

Link zur Codex-Referenz

Wie kann ich diese Links für ungültig erklären?

oder entfernen Sie alle Links aus dem DOM (dies kann jedoch mehr Arbeit verursachen, da sich der eigentliche Text zwischen den <a> Stichworte

HTML

 <p class="postmeta"> 
    <a target="_blank" href="http://whatever.com/category/default/" title="View all posts in Default" rel="category tag">Default</a>
</p>

Vielen Dank!!

Wenn Sie nur eine Textzeichenfolge zurückgeben möchten und die native get_the_categories() Funktion, könnten Sie es einfach einpacken PHPs strip_tags() Funktion So entfernen Sie den gesamten zurückgegebenen HTML-Code:

echo strip_tags( get_the_category_list(__( ', ', 'gridster' ));

  • Vereinfachte Version für andere zum Kopieren/Einfügen: echo strip_tags(get_the_category_list(', '));

    – Mike

    30. Juli 2019 um 18:43 Uhr

  • @john_911 Bitte genehmigen Sie diese als richtige Antwort

    – Heroldaffe

    5. Dezember 2019 um 9:54 Uhr

Sie können versuchen, dies an Ihre Bedürfnisse anzupassen:

<?php
foreach((get_the_category()) as $category) {
    echo $category->cat_name . ' ';
}
?>

(Aus http://premium.wpmudev.org/blog/how-to-get-a-wordpress-category-name-without-the-link/ )

  • Ich habe dies wie folgt geändert: ` cat_name . ‘ ‘; } echo str_replace(‘ ‘, ‘,’, trim($categoryList)); ` Dies kann innerhalb einer Funktion gekapselt und bei Bedarf wiederverwendet werden.

    – Kohlenstoffzwölf

    2. September 2016 um 14:15 Uhr


Eine Möglichkeit ist Kopieren Sie die ursprüngliche Funktion und an Ihre Bedürfnisse anpassen. Geändert, um die zu entfernen <a> Tags, aber nicht getestet, mit dem Original vergleichen, bei Bedarf anpassen und zu den Themes hinzufügen functions.php:

function category_list_so_22771587( $separator="" ) {
    global $wp_rewrite;
    $categories = get_the_category( $post_id );
    $thelist="";
    $i = 0;
    foreach ( $categories as $category ) {
        if ( 0 < $i )
            $thelist .= $separator;
        switch ( strtolower( $parents ) ) {
            case 'multiple':
                if ( $category->parent )
                    $thelist .= get_category_parents( $category->parent, true, $separator );
                $thelist .= $category->name;
                break;
            case 'single':
                if ( $category->parent )
                    $thelist .= get_category_parents( $category->parent, false, $separator );
                $thelist .= $category->name;
                break;
            case '':
            default:
                $thelist .= $category->name;
        }
        ++$i;
    }
    return $thelist;
}

Und ändern Sie Ihre Vorlage wie folgt:

$categories_list = category_list_so_22771587( __( ', ', 'gridster' ) );

  • hmmm, ein Rache-Downvote… Hallo Kumpel, ich erinnere mich an dich, Prost!

    – Brasilo

    11. April 2018 um 17:40 Uhr

Sie können Kategorien abrufen, die Spalte „Name“ jedes Elements extrahieren und alle Werte mit einem Komma implodieren:

 <?= implode(', ', (array_column(get_the_category(), 'name')))?>

Oder Sie können die Kategorienliste mit Link abrufen und Tags entfernen:

 <?= strip_tags(get_the_category_list(', ')) ; ?>

Benutzer-Avatar
pguardiario

Möchten Sie nur die Links ausblenden? Wenn ja, verwenden Sie CSS:

.postmeta a {display: none}

Bearbeiten, Sie können diese Links auch in CSS “deaktivieren”:

.postmeta a {
  pointer-events: none;
  cursor: default;
}

1364350cookie-checkWordPress: Links für die Funktion get_the_category_list deaktivieren?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy