2017-10-09 1 views
0

My Wordpress-Website erstes Bild als Post Thumbnail verwenden, Code:Standard-Miniaturbild für alle Beiträge in derselben Kategorie

add_filter('the_content','replace_content'); 
function get_first_image() { 
global $post, $posts; 
$first_img = ''; 
ob_start(); 
ob_end_clean(); 
$output = preg_match_all('/<img.+src=[\'"]([^\'"]+)[\'"].*>/i', $post->post_content, $matches); 
$first_img = $matches[1][0]; 

if(empty($first_img)) { 
$first_img = "/path/to/default.png"; 
} 
return $first_img; 
} 

Einige Beiträge haben kein Bild in seinem Inhalt, so will ich für sie verschiedene Standard-Thumbnails verwenden: Beiträge in der Kategorie A verwenden Bild1, Beiträge in Cagory B verwenden Kategorie2 ...

Wie kann ich das tun? danke

Antwort

0

Wie wäre es damit, hier sind wir mit has_post_thumbnail für Bildanlagen zu überprüfen, wenn keine vorhanden setzen wir das Bild und Bildquelle auf. Von dort aus suchen wir nach der Kategorie-Zuordnung, wenn es keine Kategorie-Übereinstimmungen gibt, verwenden wir eine Standard-Miniaturansicht.

<?php 
if (! has_post_thumbnail()) { 
    $themefolder = get_bloginfo('template_directory'); 
    echo '<img src="' . $themefolder . '/images/'; 
    if (is_category('Category A')) { 
     echo 'no-image-a.png'; 
    } elseif (is_category('Category B')) { 
     echo 'no-image-b.png';  
    } else { 
     echo 'no-image.png'; 
    } 
    echo '" alt="' . get_the_title() . '">' . PHP_EOL; 
} 
?> 
+0

versuche ich first_image für meine Seite bin mit, ich will es halten, ich weiß nicht, wie Sie den Code anwenden für first_image. Danke –

+0

Sie könnten ersetzen: 'if (leer ($ first_img)) { $ first_img =" /path/to/default.png "; } zurückgeben $ first_img; } ' mit: ' if (! Leer ($ first_img)) { return $ first_img; } } ' Dann verwenden Sie mein Code-Snippet unabhängig in der relevanten Seite/Post-Vorlage. – morgyface

+1

Danke Mann, Fertig! –

0

Schließlich Es ist mein Code:

add_filter('the_content','replace_content'); 
function get_first_image() { 
global $post, $posts; 
$first_img = ''; 
ob_start(); 
ob_end_clean(); 
$output = preg_match_all('/<img.+src=[\'"]([^\'"]+)[\'"].*>/i', $post->post_content, $matches); 
$first_img = $matches[1][0]; 

if(empty($first_img)) { 
    $categories = get_the_category(); 

if (! empty($categories)) { 
foreach ($categories as $category) { 
if($category->name == 'Category A'){ $first_img = "/path/to/default1.png";} 
elseif ($category->name == 'Category B'){ $first_img = "/path/to/default2.png";} 
else {$first_img = "/path/to/default3.png";} 
} 
} 
} 
return $first_img; 
} 
Verwandte Themen