サポート » プラグイン » Custom Field Template で画像を表示させたい。

  • 解決済 kozou

    (@kozou)


    最近MTからWPに手を出しまして、こちらで何度かご指導頂きました。
    ありがとうございます。
    自分でも色々と試しておりますが、解らない事があり、どうか質問させて下さい。

    Custom Field Template を利用し、カスタムフィールドを実装する事は
    何とか出来たのですが、画像の実装がうまく行きません。

    通常の画像の挿入のやり方で、記事内に画像を挿入させる事は当然出来るのですが
    そうではなく、商品詳細ページなどを書く前提で、知識のないユーザーが
    画像アップロードをすると、自動で固定の定位置に画像が挿入されるような設定に
    したいのです。

    以下のサイト様を参考にやってみたのですが、自分の場合はうまく行きませんでした。

    参考サイト様:http://oshiete.goo.ne.jp/qa/5953081.html

    まず初めに、Custom Field Template の設定で

    [画像]
    type = textarea
    rows = 10
    cols = 50
    tinyMCE = true
    mediaButton = true
    mediaOffVideo = true
    mediaOffAudio = true
    mediaOffMedia = true

    と入力し、これで入力管理画面に画像のアップロードフィールドが出来ました。

    次にこれをテンプレート内の反映させるため、index.php 内に

    <?php echo c2c_get_custom(‘画像’); ?>

    と入力します。これで表示されるはず?なのですが

    Fatal error: Call to undefined function c2c_get_custom() in
    /home/sample.jp/public_html/wp/wp-content/themes/sample
    /index.php on line 56

    と表示されうまく行きません。プログラムの事は勉強不足でよく解らず
    どうした良いか困っております。

    どうかご指導頂けるとうれしいです。よろしくお願い致します。

15件の返信を表示中 - 1 - 15件目 (全16件中)
  • <?php echo c2c_get_custom('画像'); ?>

    この書き方はGet Custom Field Valuesというプラグインの記述じゃないですか?
    Custom Field Template pluginはショートコードを使う方法以外作者のページにありましたっけ?
    ちょっとよくご確認を;)

    トピック投稿者 kozou

    (@kozou)

    ご回答ありがとうございます。

    参考にしたサイトでは、上記の方法で出来るようでしたので
    そのまま真似をしてしまいました。

    ご指摘頂き、埋込みのコードを他のテキストと同様にしてみたら
    反映されました!ありがとうございます。

    厚かましいですが、ついでに質問させて頂きたいのですが
    反映された画像をクリックすると、画像のオリジナル画像にリンクされますが
    リンクはさせない方法はあるのでしょうか?

    画像を表示させ、それで完了、と言う感じにしたいのですが・・・

    また、初歩的な事なのかも知れませんが

    tinyMCE = true
    htmlEditor = true
    mediaButton = true
    mediaButton = true
    mediaOffVideo = true
    mediaOffAudio = true
    mediaOffMedia = true

    等とありますが、これは一体何なのでしょうか?
    記載しなくても、うまく表示される気がしますが・・・。

    触りだけでも教えて頂けると嬉しいです。

    なぜにtextareaでやってるのか?というのもあるっちゃありますが。
    [File Upload]
    type = file
    ではダメなんですか?

    >反映された画像をクリックすると、画像のオリジナル画像にリンクされますが
    >リンクはさせない方法はあるのでしょうか?
    テキストエリアに貼り付ける前に、「リンク:なし」としておくか、貼り付けた後にリンクを手動でとっぱらう。

    mediaButton = true
    mediaOffVideo = true
    mediaOffAudio = true
    mediaOffMedia = true
    「メディア関連のボタンは出すが、ビデオ/オーディオ/Flash(?)のボタンは出さない」という指定。

    私も、
    [File Upload]
    type = file
    でやるのがスジだと思います。

    [File Upload]でやる場合は、画像IDから画像を取り出してウンヌンと、多少PHPを追加しなければなりませんが、リンクを付けたり付けなかったたりも自由に出来ます。

    トピック投稿者 kozou

    (@kozou)

    ご解答ありがとうございます。
    本当に勉強になります。

    昨日1日中試しましたが、結局の所、まだ出来てません・・・

    [File Upload]
    type = file

    に変更したのですが、生成されたページには 61 とか
    数字だけが表示されます。

    これは画像ID?だと思いますが、これを画像として
    表示させるために、pluto1234様が言われる通り
    PHPを追加するのだと思いますが、これが解りません。

    一応昨日、新たに参考書も購入し、3冊の参考書を手元において
    挑戦しておりますが、やはり素人の私にはWPは難しいです。

    MTなら大体の事は自分で出来るのですが、MTと大差ないと
    聞いておりましたが、私にとっては???です。
    ネット上の日本語の情報も、高度な事をやろうとすると
    やはり情報が少ないような・・・。

    こんな私がWPを使いこなすためにはPHP等を学んだ方が
    良いのでしょうか?
    なぜ皆さんは、そんなに使いこなせるのでしょうか?

    アドバイス頂けると大変勉強になります。
    お願い致します。

    <?php echo wp_get_attachment_image( ここにID ); ?>
    とかですかね。
    どうに使うのかわからないので、例えば上記のようにします。

    MTなら大体の事は自分で出来るのですが、MTと大差ないと
    聞いておりましたが、私にとっては???です。
    ネット上の日本語の情報も、高度な事をやろうとすると
    やはり情報が少ないような・・・。

    こんな私がWPを使いこなすためにはPHP等を学んだ方が
    良いのでしょうか?
    なぜ皆さんは、そんなに使いこなせるのでしょうか

    高度なことというのがどのくらいのことかというのは主観が分かれると思いますが、私が思うに管理画面上だけでいろいろやるならMTっていろいろできると思っていますが、そこから離れて自分でコード書いていこうと思うとWPのほうが自由が効くような感じがします。
    実際に、どちらも業務でカスタマイズしていますが、上記のように感じています。

    PHPを勉強したほうがいいかどうかの話ですが、それに関しては」WPだからとかでなく、MTだって同じことでしょう。というか、PHPのアプリケーションならどれでもそうでしょう。WPやMTだけでなく、Xoops だろうが Geeklog だろうが Joomla! だろうが同じことが言えますね。

    私のイメージでは、プラグインは別として、
    <———————————><——————–>
    MTタグ              Perl(タグの拡張等)
    <———><——————————————–>
    WPタグ     WP関数、独自PHP
    というような感じです。

    プラグインを比べると
    <—-> MT
    <———————–・・・————————> WP
    ってな感じです。

    ガラパゴス化してるMTタグよりは、PHP を勉強した方がいいと思います。
    kvex氏 の言う通り
    Joomla
    Drupal
    EC-CUBE
    ZEN-CART
     :
    ほとんどが、PHP を解ってないと仕事にはなりません。
    趣味でやるなら、得意なものでやるのが一番です。

    トピック投稿者 kozou

    (@kozou)

    皆様、ありがとうございます。
    やはり感覚的にやっていては駄目だと解りました。
    PHPも勉強していきたいと思います。

    それから
    教えて頂いた<?php echo wp_get_attachment_image( ここにID ); ?>
    の方法で、取り合えず画像が表示されました。

    昨日は1日中色々と試しまして一向に駄目でしたので
    本当に嬉しいです。

    ただ、画像IDが解っている場合は教えて頂いた方法で良いのですが
    知識のないユーザーが画像をアップロードしただけで
    自動で反映されるような想定にしたいのです。

    つまりは画像IDなど知らなくても、管理画面から画像を選択すれば
    それでOKのような感じにしたいのです。

    お時間ある時で結構ですので、教えて頂けると大変嬉しいです。
    どうかよろしくお願い致します。

    に変更したのですが、生成されたページには 61 とか
    数字だけが表示されます。

    と言ってませんでしたっけ?
    それでいいと思うんですけど。ダメですか?

    <?php echo wp_get_attachment_image( c2c_get_custom(‘画像’) ); ?>

    ですかね

    トピック投稿者 kozou

    (@kozou)

    kvex様、何度もご指導ありがとうございます。

    整理しますと、ご指摘頂きまして
    [File Upload]
    type = file
    に変更して
    <?php echo get_post_meta($post->ID,”画像”,true); ?>
    とした所、確かに 61 と数字だけが表示されてしまいました。

    これが画像ID?ですので
    教えて頂いた、

    <?php echo wp_get_attachment_image( ここにID ); ?>

    で61を代入して

    <?php echo wp_get_attachment_image(61); ?>

    で確かに画像は表示されました。しかし、これでは画像IDが
    解っている事が前提な感じだと思うのですが

    ここで上記の方法を合体させまして

    <?php echo wp_get_attachment_image
    (<?php echo get_post_meta($post->ID,”画像”,true); ?>); ?>

    とした所、行けるかと思いましたが、案の定うまく行きませんでした。
    おそらくPHPの文法上おかしいのだと思うのですが・・・

    また先ほど教えて頂いた

    <?php echo wp_get_attachment_image( c2c_get_custom(‘画像’) ); ?>

    ですと

    Fatal error: Call to undefined function c2c_get_custom()
    in /home/sample.jp/public_html/wp/wpcontent/
    themes/sample/index.php on line 56

    と表示されてしまいました。ちなみに使っているプラグインは
    Custom Field Template です。

    もしお時間ある時にでもご指導頂けると嬉しいです。
    何卒よろしくお願い致します。

    >これが画像ID?ですので
    すいません、いいかげんな用語でした。
    正確には、画像の情報を持つポストIDです。

    画像も投稿やページと同じようにポストとして管理されています。
    投稿:post_type=post
    ページ:post_type=page
    添付:post_type=attachment アップロードした画像はこれに属します。

    >PHPの文法上おかしいのだと思うのですが・・・
    <?php echo wp_get_attachment_image(get_post_meta($post->ID,”画像”,true)); ?>

    >知識のないユーザーが画像をアップロードしただけで
    >自動で反映されるような想定にしたいのです。
    これを single.php などのテンプレートに書いておけば、ユーザはアップロードするだけです(サイズの調整の話は別にして)。

    トピック投稿者 kozou

    (@kozou)

    >これが画像ID?ですので
    >すいません、いいかげんな用語でした。

    とんでもございません。色々と教えて下さり本当にありがとうございます。

    上記の方法を試させて頂きまして、表示されました。

    ただ、贅沢を言うならば、やはり商品詳細ページなどで導入したいので
    画像の大きさはwidth 等でコントロール出来れば理想です。

    また知識のないユーザが不揃いの大きさの画像を投稿しても
    一定の大きさで常に表示されるようにしたいのです。

    色々調べて試して見た所、どうも大きさは
    thumbnail、medium、large、full の4タイプしか指定できない?
    ような事が書いてあったのですが、やはりそうなのでしょうか?

    div で領域を確保し、CSSの後書きなどで
    overflow:hidden; 等で出来ない事もないのかも知れませんが・・・

    調べていくとwp_get_attachment_image_src と言う関数もあるようで
    こちらの方が、詳細設定を行いたいためには良いのかと思ったりしましたが
    どうなのでしょうか?

    http://codex.wordpress.org/Function_Reference/wp_get_attachment_image
    を見ると、thumbnail、medium、large、full 以外にもサイズ指定ができるようです。

    例えば、array(200,150)
    元の画像との比率はどうなるわかりませんが・・。

    <?php echo wp_get_attachment_image(get_post_meta($post->ID,"画像",true),array(200,150)); ?>

    が、【管理パネル-メディア】で、thumbnail、medium、large をサイトで使いそうなサイズを指定しておけば、

    あるところでは、

    <div class="xxxx"><?php echo wp_get_attachment_image(get_post_meta($post->ID,"画像",true),'thumbnail'); ?></div>

    また、あるところでは、

    <div class="yyyy"><?php echo wp_get_attachment_image(get_post_meta($post->ID,"画像",true),'medium'); ?></div>

    でいいんじゃないでしょうか。

    wp_get_attachment_image_src() は、
    自分の思い通りの <img src /> を書き出したいときに使います。

    例えば、class=”zzzz” にして、width:200px にする。

    <?php
    $attach_id = get_post_meta($post->ID,"画像",true);
    $image_info = wp_get_attachment_image_src( $attach_id  , 'full' );
    list( $url, $w, $h) = $image_info;
    $h = intval(200 * ( $h / $w ));
    $alt = get_post_meta($attach_id , '_wp_attachment_image_alt', true);
    ?>
    <img class="zzzz" src="<?php echo $url; ?>" alt="<?php echo $alt; ?>" width="200px" height="<?php echo $h; ?>" />

    トピック投稿者 kozou

    (@kozou)

    ご返信遅くなりまして申し訳ございません。
    教えてもらったやり方をPHPのコード勉強も併せて色々試しておりました。

    画像ですが、ほぼ思い通りの事が出来るようになりました!!!

    【管理パネル-メディア】からサイズ設定をしておくのも
    かなり良い感じで使えます!

    またいずれは、alt属性にも気を使いたいと思いますが
    最後に教えて頂いたやり方や、教えて頂いた事をさらにカスタマイズして
    臨機応変に対応できそうです。

    まだまだ、全てを理解は出来ていないのですが
    頭の中で徐々に点と点が繋がってきて、非常に嬉しいです。

    今回、画像の表示でかなり悩みましたが、これで一つ
    自分なりに大きな山場を越えました!
    (まだまだ山がありそうですが・・・)

    今回ご指導頂いた事は、本当に目から鱗です!
    私の様な素人さんにも、今後このフォーラムが少しでも役立てば幸いです。

    皆様、本当にありがとうございました。

    ほぼ解決でよかったですね!
    で、

    色々調べて試して見た所、どうも大きさは
    thumbnail、medium、large、full の4タイプしか指定できない?

    【管理パネル-メディア】からサイズ設定をしておくのも
    かなり良い感じで使えます!

    誤解のないように簡単に説明させていただくと、「thumbnail、medium、large、full の4タイプ」をすべてサイズ指定しておくと、画像アップロード時にすべてのサイズの画像を生成します。後でサイズを変更しても、すでにアップロードされた画像は変更されません。

    サーバーが無制限に容量を使用できるのならいいのですが・・・thumbnail、medium、largeくらいならたいした容量になりませんが、fullに関してはデジカメで撮った写真などをそのままアップロードすると数MBの画像がそのままアップロードされることになります。
    少々詳しい人なら、画像編集ソフトなどでサイズをそこそこ小さくしてからアップしたりするのですが、PCなどに詳しくない人は通常そのままアップロードしようとしますよね・・・

    そこでプラグインの登場です。例えばResize At Upload Plusなんてプラグインを使用すると、最大サイズを指定しておけばそのサイズ以上の画像は最大サイズに自動的にリサイズされます。(横幅だけを指定するなどしておけば相対的に変更してくれます)

    他にもいろいろプラグインで追加できる機能があったりしますので、探してみてくださいね;)(ただし公式サイト以外のプラグインを使用する場合は自己責任で・・・)

15件の返信を表示中 - 1 - 15件目 (全16件中)
  • トピック「Custom Field Template で画像を表示させたい。」には新たに返信することはできません。