• 解決済 mpad

    (@mpad)


    wordpress初心者です。
    新着情報などで記事を一覧表示させたとき画像が含まれた投稿記事タイトルの横に
    カメラなどのアイコンを付けたいと思っています。
    MTなどで構築されたサイトでは、同様のことをしているサイトがありますが
    Wordpressでも上記のようなことが実現可能でしょうか。
    プラグインなどでも構いませんので、ご存じの方いらっしゃいましたら
    ご教授ください!

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • mpad さん、こんにちは。
    WordPress ループ内なら、例えば以下のような関数を作成して振り分けることが可能です。
    もっといい方法があるかもしれませんが、その時はごめんなさい。

    //テーマの functions.php 内に記述
    function post_has_image($pid=0) {
        $pid = ( empty($pid) || !is_int($pid) ) ? $GLOBALS['post']->ID : $pid;
        if ( empty($pid) ) return false;
    
        $children = get_children('post_type=attachment&post_parent=' . $pid);
        if ( !empty( $children ) ) {
            foreach ( $children as $attachment ) {
                if ( wp_attachment_is_image( $attachment->ID ) ) return true;
            }
        }
        return false;
    }
    <?php
    //テンプレート上、WordPress ループ内での使い方の例
    if ( post_has_image() ) {
        echo '画像あり';
    } else {
        echo '画像なし';
    }
    ?>

    ただし条件として、その投稿から画像をアップロードしている場合に限ります。
    外部の画像ファイルや、別の投稿からアップロードした画像などをメディアライブラリから選択して記事中に貼り付けている場合にはチェックの範囲外なので、場合によっては投稿中に img 要素が含まれているかどうかを the_content の内容を正規表現でチェックするような方法を取る必要があるかもしれません。

    function post_content_has_imgtag() {
        $content = apply_filters( 'the_content', get_the_content() );
        if ( preg_match('/<img[^>]*\/?>/', $content) ) return true;
        return false;
    }
    トピック投稿者 mpad

    (@mpad)

    mizubeさん、ご親切にアドバイスいただきありがとうございます!
    早速やってみます、ありがとうございました!

2件の返信を表示中 - 1 - 2件目 (全2件中)

トピック「一覧表示で画像が含まれた投稿記事にアイコンを付けたい」には新たに返信することはできません。