WordPressのカスタムフィールドを使って画像を反映させる方法と、その画像にjQueryプラグインによるツールチップを実装する方法

スポンサーリンク

題名長くて済みません。他のサイトで行った
カスタマイズを覚書します。WordPressの
カスタムフィールドで画像をブログに反映させ
て、その画像にマウスオーバーすると元画像が
ツールチップとして実装されるようにする為の
チュートリアル。プラグインは使わず、
functions.phpで関数を追加します。

ちょっと分かり難いですけど、カスタムフィールドで画像を指定してブログに反映させてその画像をサムネイルで表示、マウスオーバーすると大元の大き目の画像がツールチップで実装されるようにする方法です。

面倒だからプラグインよこせ!という方はGet Custom Field Valuesをお試し頂いては如何でしょう。僕は触った事が無いのでなんとも言えませんが・・

方法

方法です。functions.php(テーマ関数ファイル)とjQueryを利用します。お使いのテーマで利用していない場合はWordPressのドキュメントをご覧下さい。functions.phpはWPのテーマ独自の関数を加えられるので凄く便利です。ただ、僕の方法よりも最適な方法があるかもしれませんので参考程度に。。。

STEP:1 / カスタムフィールドで画像を指定して実装

テーマにカスタムフィールドで指定した画像をブログ内に実装させます。functions.php内に以下を追記。

<?php

function image_custom($key, $width, $height) {
global $post;
$custom_field = get_post_meta($post->ID, $key, true);

if($custom_field) { //if the user set a custom field
echo '<img class="好みのclass名" src="'.$custom_field.'" alt="" width="'.$width.'" height="'.$height.'" />';
}
else { //else, return
return;
}
}

?>

オレンジの部分がブログに反映される部分です。class名やalt属性ははお好みで。これでそのテーマだけの関数(image_custom($key, $width, $height)の事)が加わりました。
次にこの関数を使ってブログに画像を表示させます。

STEP:2 / ブログに画像を表示

ブログに画像を表示させます。この際、記事を投稿する際にカスタムフィールドには以下のように記述するようにします。
fanc01
ここで指定した画像を反映させる為に、お使いのWordPressテーマの表示させたい場所に以下のようなタグを挿入します。

<?php image_custom('image', 162, 118); ?>

先程、function.phpに追記した「function image_custom($key, $width, $height) 」のように()内は順に

  1. ‘カスタムフィールドでimageと指定した名’
  2. 画像の横幅px
  3. 画像の縦px

となります。画像の大きさはサイトに合わせて頂くといいと思います。上記の場合は横幅162px、縦118pxのサムネイル画像がブログに表示されるようになります。実際にアップロードした画像はもっと大きいもので、ここはサムネイルを出すようにします。
fanc02
これで画像をカスタムフィールドでブログに反映させる事が出来ました。
次にWPテーマにjsファイルを加えます。

STEP:3 / マウスオーバーで使うJS

表示されるようになった画像にマウスオーバーすると拡大画像をツールチップで出すようにしました。使ったのはjQueryと画像を表示させるプラグインファイルのExample 3です。お使いのWPテーマにjsフォルダ等を作ってアップロードしてください。cssはテーマのcssに加えてもいいですし、お好みで。

jQueryとプラグインのjsファイルのURLをhead内に加えるのもお忘れなくいようお気をつけ下さい。以下のような記述をhead内に加えてアップロードします。

<script type='text/javascript' src='jsファイルのURL'></script>

次にマウスオーバーでツールチップで実装される画像を呼び出す様にします。

STEP:4 / ツールチップ内に実装する画像を取得する

jQueryで実装するツールチップ内の画像をfunctions.phpで呼び出せるように以下を追加します。

<?php
function image_screenshot($key) {
global $post;
$custom_field = get_post_meta($post->ID, $key, true);

if($custom_field) { //if the user set a custom field
echo ''.$custom_field.'';
}
else { //else, return
return;
}
}

?>

手順が分かりやすいようにSTEP1の記述とは別々にしましたが、一緒にしてしまっても問題ないです

これでimage_screenshot()を使うことでカスタムフィールドでimageという名で使った画像を呼び出します。STEP:1で追加した関数はimgタグを呼び出すもので、STEP:4ではアップロードした画像のURLそのものを取得するようにします。

サムネイルにマウスオーバーすると、大きな画像(アップロードした実際の大きさの画像)が浮かび上がる仕組みがこれで出来上がりました。

最後にWPテーマ内にタグを加えます。

STEP:5 / テーマファイルにタグを追加

先程のjQueryのプラグインを実装させます。

<a href="画像のリンク先" class="screenshot" rel="<?php image_screenshot('image'); ?>" title="ツールチップ内のテキスト"><?php image_attachment('image', 162, 118); ?></a>

上記のタグをサムネイルを表示させたい箇所に挿入してファイルをアップロードします。以下のように実装されます。
tool01

以上です。説明下手で済みません。

URL :
TRB :

Comments & Trackbacks (9)

  1. Malcolm Hoye

    I have really enjoyied reading your well written article. It looks like you spend a lot of effort and time on your blog. I have bookmarked it and I am looking forward to reading new articles. Keep up the good work!

  2. Denna Lofredo

    Excellent article and easy to understand explanation. How do I go about getting permission to post part of the article in my upcoming news letter? Giving proper credit to you the author and link to the site would not be a problem.

  3. Maximo Sauro

    Great blog, Just wanted to comment that i can not connect to the rss stream, you might want install the right wordpress plugin for that to workthat.

Twitter

Web制作に役立つそうなリソースを独断と好みで配信しています。

かちびと.netにリンクの無いトラックバックはお受けいていません。
コメントされる前にガイドラインをご覧下さい。

twitter facebook rss contact

Ads

Posts

Contact

Services