2012-12-12 14 views
5

私は誰かが問題を手伝ってくれることを期待しています。私は私の友人のためのニュースウェブサイトを構築しています。サイトは一緒になってきていますが、注目画像にキャプションを追加する方法はわかりません。私は今日、ウェブ全体を見てきました。PHPシートにコードを追加することでそれを行う方法はたくさんありますが、私は何をしているのか分かりません。Wordpressで注目の画像キャプションを追加するには

私はfunctions.phpコードにそのようなコードを追加しましたが、すべてがペアの形になりました。

私は指をつけたままにしています。誰かが何をすればいいのか入力して助けてくれるでしょう。

ご協力いただきありがとうございます。

種類がジョン

+0

「注目画像」とはどういう意味ですか?特定の画像にキャプションなどが含まれないようにしたいのですか?どんな文脈で画像、キャプションなどを表示したいかを説明してください。 – barakadam

+1

特集画像は、各投稿とページ、および「おすすめ画像」という独自のアップロード場所を持っています。だから私はそれが彼が話していると思います。簡単なGoogle検索で簡単な解決策が得られました。 – AndyWarren

答えて

9

まず

について、あなたはあなたのfunctions.phpファイルに次のコードをドロップする必要があります:

function the_post_thumbnail_caption() { 
    global $post; 

    $thumbnail_id = get_post_thumbnail_id($post->ID); 
    $thumbnail_image = get_posts(array('p' => $thumbnail_id, 'post_type' => 'attachment')); 

    if ($thumbnail_image && isset($thumbnail_image[0])) { 
    echo '<span>'.$thumbnail_image[0]->post_excerpt.'</span>'; 
    } 
} 

権利という点で、PHP終了タグの前にそれを貼り付けクローズするPHPタグがない場合は、問題の原因となる可能性のあるコードを貼り付けるコードの下に空白行がないことを確認してください。その後

、キャプションを表示することがしたい場合は、あなたがこれでそれを呼び出す必要があります:あなたはどこのテンプレートファイルにコールを入れてわからない場合は

<?php the_post_thumbnail_caption(); ?>

<?php the_post_thumbnail(); ?>が呼び出されている場所を見つける必要があります。テンプレートファイル内のその行を探し、その近くに関数呼び出しを配置し​​ます。ここにキャプションを表示する場所を指定します。この関数はキャプションをspanタグに自動的にラップするので、CSSでタグ付けすることができますが、望む任意のタグで関数呼び出しをラップすることもできます。お使いのテンプレートファイルは、このまたは非常に似何かで取り上げた画像を呼び出している場合

したがって、たとえば、:

<?php 
    if (has_post_thumbnail()) { 
     the_post_thumbnail(); 
} ?> 

あなたはこのようにそれにキャプションコールを追加したいと思います:

<?php 
    if (has_post_thumbnail()) { 
     the_post_thumbnail(); 
} ?> 
<?php the_post_thumbnail_caption(); ?> 

その他の説明が必要な場合はお知らせください。

+0

こんにちはアンディ、私を助けるために時間を割いていただきありがとうございます。私はUltimatumという非常に良いテーマビルダーを使用しています。次のリンクをご覧ください。 http://ultimatumtheme.com/私は今朝すべてのフォルダを見てきましたが、あなたが言及したPHPファイルを見つけることができません。だから私はあなたの投稿をコピーし、あなたを信用し、それをUltimatumフォーラムに投稿しました。うまくいけば、誰かが私がメモ帳++で開きたいファイルを教えてくれます。 – TLCJohn

+0

問題ありません、うまくいけば助けてください。あなたが探し出したものが得られたら、私の答えをここで受け入れてください。あなたが提供したリンクに行き、コピーをダウンロードして、正しいファイルを見つけることができましたが、かなり高価なツールです。それはフロントエンドドラッグアンドドロップビルダーのようなものでしょうか?だから、それはWordPressの典型的なテーマよりもはるかに多くのコードとファイルを持っているかもしれません。 – AndyWarren

-1
the_post_thumbnail();     // without parameter -> Thumbnail 

the_post_thumbnail('thumbnail');  // Thumbnail (default 150px x 150px max) 
the_post_thumbnail('medium');   // Medium resolution (default 300px x 300px max) 
the_post_thumbnail('large');   // Large resolution (default 640px x 640px max) 
the_post_thumbnail('full');   // Original image resolution (unmodified) 

the_post_thumbnail(array(100,100)); // Other resolutions 
+2

この回答を削除する必要があります。それは完全に間違っており、あなたはおそらく下降気味になるでしょう。 –

0

私はこれが古い質問ですけど、ワードプレスで既に利用可能なフィールドを使用している間、私はあなたではなく、すでに(以下データベース呼び出し)利用可能なデータを扱うならば、他の人が好むかもしれない別のソリューションを提供したかったです。

get_the_post_thumbnail()の出力では、imgタグ全体がcaptionフィールドから事前に設定されたaltタグを含む文字列として返されるため、xml parserまたはregexを使用してimageタグのaltタグを抽出することができます。

私はこれでした:あなたはもともと受け入れ答えのような関数でそれをしたい場合は、あなたがあなたの関数に直接imgタグを渡す

<?php 
    if ($featured = get_the_post_thumbnail(get_the_ID())): 

     echo $featured; 
     preg_match('/alt="(.*)"/i', $featured, $caption); 

     if ($caption) { 
      echo wpautop(array_pop($caption)); 
     } 
    endif; 
    ?> 

を:

function get_the_post_thumbnail_caption($img_tag) { 
     preg_match('/alt="(.*)"/i', $img_tag, $caption); 
     return array_pop($caption); 
    } 

、テンプレートでは:

$img = get_the_post_thumbnail(get_the_ID()); // or any id 
    echo wpautop(get_the_post_thumbnail_caption($img)); 

'alt text'フィールドに入力すると、キャプションフィールドのデータが上書きされますimgタグを出力します。必要に応じて、フィルタを使用してその動作を上書きすることができます。

+0

もうひとつ: 'preg_match_all'関数と '/(alt|title|src)="(.*)"/i'のようなパターンを使って正規表現を拡張して他のタグを含めることができます – Scorpius

関連する問題