2010-09-10 3 views
1

Я хотел бы сделать оператор if, который проверяет, имеет ли в них изображения. Если они это сделают, я хочу, чтобы они сделали одно, а если нет, я хочу, чтобы они сделали что-то еще.Можете ли вы проверить the_content() в wordpress для img-тегов?

Может ли кто-нибудь вести меня в правильном направлении?

+0

Будет ли проверка соответствия строк загрузкой ресурсов? – chris

+0

strstr не будет иметь никакого эффекта. – RobertPitt

ответ

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

+1

Да, это проскользнуло мне, вам нужно использовать 'get_the_content()' – RobertPitt

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

+0

, иначе содержимое будет отображаться. Я просто хотел захватить его в переменную. Возможно, есть функция wordpress, которая делает это по умолчанию, но это работает. – chris

+1

вы можете использовать 'get_the_content' – RobertPitt

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); 
Смежные вопросы