wake-up-neo.com

Beschränken Sie sich auf eine bestimmte Beitragskategorie

Ich habe eine Funktion, die Bilder in ein benutzerdefiniertes Div einwickelt.

Es ist in functions.php platziert und ändert alle Beiträge. Ich würde gerne wissen, ob es eine Möglichkeit gibt, sie nur auf Posts in einer bestimmten Kategorie anzuwenden .

Hier ist die Funktion:

function my_image_tag($html, $id , $alt, $title) {
    $html = "<div class='my-class'>" . $html . "</div>";
    return $html;
}

add_filter('get_image_tag','my_image_tag',10,4);

Aktualisieren:

Die Methode von Robert Hue hat mit dieser Funktion nicht funktioniert, aber mit der folgenden Funktion, die ich für besser halte (zumindest für meinen Gebrauch):

function wrapImagesInDiv($content) {
    if ( in_category( 'prosjekter' ) ) {
        $pattern = '/(<img[^>]*class=\"([^>]*?)\"[^>]*>)/i';
        $replacement = '<div class="image-container $2">$1</div>';
        $content = preg_replace($pattern, $replacement, $content);
    }
    return $content;
}
add_filter('the_content', 'wrapImagesInDiv');
2
Garland Briggs

Sie sollten nach Kategorieeinträgen suchen, um den Inhalt zu ändern. Geben Sie unter in_category check eine Kategorie-ID (Ganzzahl), einen Namen oder einen Slug (String) oder ein Array davon an.

function my_image_tag( $html, $id , $alt, $title ) {
    if ( in_category( '1' ) ) {
        $html = "<div class='my-class'>" . $html . "</div>";
    }
    return $html;
}

add_filter( 'get_image_tag', 'my_image_tag', 10 ,4 );

Für die Kategorie slug blog-post können Sie in_category( 'blog-post' ) verwenden.

Wenn Sie mehr als eine Kategorie verwenden möchten, können Sie so etwas tun.

in_category( array( '15', 'Tropical Birds', 'small-mammals' ) )

Es ist eine Kombination aus ID, Name und Slug. SO Es liegt an Ihnen, wie Sie es verwenden können.

EDIT

Wenn Sie diese externe Schleife verwenden, versuchen Sie dies.

function my_image_tag( $html, $id , $alt, $title ) {
    global $post;
    if ( in_category( '1' ) ) {
        $html = "<div class='my-class'>" . $html . "</div>";
    }
    return $html;
}
add_filter( 'get_image_tag', 'my_image_tag', 10 ,4 );
2
Robert hue