2012-04-17 10 views
0

このコードスニペットを取得して、配列内の各画像に別々のog:imageメタタグを出力しようとすると、問題が発生します。FacebookのメタタグPHPの状態

<?php function catch_that_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)){ 
     //Defines a default image 
     $first_img = "http://example.com/images/fbthumb.jpg"; 
    } 
return $first_img; 
} 
?> 

は、現在のコードでは、最初に一致したのimgのsrcタグを返しているが、私は使用する共有する画像を選択することができますので、私はそれが別のタグとしてそれらすべてを返却したいと思います。

私はこの行を知っている:

$first_img = $matches [1] [0]; 

は、各条件が、イム方法がわからないのいくつかのタイプに変更する必要があります。どんな助けでも大歓迎です。ありがとう!

EDIT:?ここ

が最後の提案の後に私のコードです:

<?php function catch_that_image() { 
global $post, $posts; 
$result = preg_match_all('#<img.+src=[\'"]([^\'"]+)[^>]*>#i', $post->post_content, $matches); 

return $matches[1]; 

}

>

"/>

私はまだそれを把握するカント任意のアイデア?

+0

' * *#i'、$ post-> post_content、$ matches); foreach($ match [1] to $ match){ $ imgSources [] = $ match; } return $ imgSources; } > <メタプロパティ= "OG:画像" コンテンツ= "?"?/> ' – brianr1

答えて

0

この機能をお試しください。イメージソースの配列を返します。その後、配列の最初のイメージを常にデフォルトイメージとして使用できます。機能を使用して

function catch_that_image() { 
    global $post, $posts; 
    $imgSources = array(); 
    $result = preg_match_all('#<img.+src=[\'"]([^\'"]+)[^>]*>#i', $post->post_content, $matches); 

    foreach($matches[1] as $match) { 
     $imgSources[] = $match; 
    } 

    return $imgSources; 
} 

または単純

function catch_that_image() { 
    global $post, $posts; 
    $result = preg_match_all('#<img.+src=[\'"]([^\'"]+)[^>]*>#i', $post->post_content, $matches); 

    return $matches[1]; 
} 

:?

$imageArray = catch_that_image(); 
foreach($imageArray as $image) { 
    echo '<meta property=​"og:​image" content=​"$image">'; 
} 
+0

いいので、私は私がここで私に与えた最後のものを使用しました。私はこれにコードを追加する方法を理解できないので、オリジナルの投稿に編集を加えてください。 – brianr1

+0

Firebugでは、これを返します: brianr1

関連する問題