2010-09-10 77 views

回答

1
if(($c = get_the_content()) && strstr('<img',$c)) 
{ 
    //has an image/you can use $c saves calling the function again 
}else 
{ 
    //No image. 
} 

這是最快的方法來做到這一點,可能不是100%準確的你。

+0

這實際上導致內容顯示兩次。 – chris 2010-09-10 21:57:08

+1

是啊,它滑了我的腦海,你必須使用'get_the_content()' – RobertPitt 2010-09-10 22:04:03

0

我最終使用:

<?php  
    ob_start(); 
    the_content(); 
    $content = ob_get_clean(); 

    if(!strpos($content, "<img")) { 
     the_content(); 
    } else { 
     echo '<img src="' . catch_that_image() . '" alt=""/>'; 
    }  
?> 

catch_that_image()是一個自定義功能,我發現只顯示來自後的圖像。

+0

你可以只驗證你爲什麼需要啓動輸出緩衝區? – RobertPitt 2010-09-10 21:30:58

+0

否則會顯示內容。我只是想把它變成一個變量。也許有一個WordPress的功能,默認情況下,但這個工程。 – chris 2010-09-10 21:47:42

+1

你可以使用'get_the_content' – RobertPitt 2010-09-10 22:03:34

0

爲什麼不只是使用內置的特色圖像功能?

// in functions.php 
add_image_size('my-custom-image-size', width, height); 

// in the template 
if (has_post_thumbnail()) { 
    the_post_thumbnail('my-custom-image-size'); 
} else { 
    the_content(); 
} 

//or via a filter 
function my_image_replacement($the_content) { 
    global $post; 
    if (has_post_thumbnail()) { 
     $the_content = get_the_post_thumbnail($post->ID, 'my-custom-image-size'); 
     // other stuff as necessary 
    } 

    return $the_content; 
} 
add_filter('the_content', 'my_image_replacement', 11); 
相關問題