web-dev-qa-db-ja.com

ホームページのみで1投稿につき1画像を制限するにはどうすればいいですか?

私のwordpressへの投稿のほとんどは、投稿された画像が6つか5つです。私の問題は、私が新しい画像で5つの新しい投稿を投稿した場合、それが私のホームページに全部で25の画像が表示されることになるでしょう。

私は「ホームページのみ」の全コンテンツに1つの画像投稿を制限したいと思います(合計6つの画像を持っているとしましょう、それは単一のページになります)。

誰もがそれを行う方法を知っていますか?

またはホームページ上の画像を制限することができます任意の画像の抜粋プラグイン?

2
kurima

私はあなたのテーマのfunctions.phpの中でこれを使います

// function (image toolbox) for all images
 function attachment_toolbox($size = thumbnail) { 

if($images = get_children(array(
    'post_parent'    => get_the_ID(),
    'post_type'      => 'attachment',
    'numberposts'    => 1, // show all images is -1
    'post_status'    => null,
    'post_mime_type' => 'image',
))) {
    foreach($images as $image) {
        $attimg   = wp_get_attachment_image($image->ID,$size);

        $postlink = get_permalink($image->post_parent);


        echo '<a href="'.$postlink.'">'.$attimg.'</a>';

    }
}

}

そして、ループ内で

<div class="around_image"> 
  <?php attachment_toolbox('medium'); ?>
</div><!-- / around_image -->

それは私のサイトのすぐ外で今働いているイム、あなたが望む写真のサイズに "ミディアム"を変更する、 "サムネイル"、 "ミディアム"、 "ラージ"または "full_size"

詳細については こちらを参照してください

1
MartinJJ
/**
 * @author: wpreceipes
 * @link: [1]: http://www.wprecipes.com/how-to-get-the-first-image-from-the-post-and-display-it
 */
function wpse18215_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];

    //Defines a default image
    if( empty( $first_img ) )
    { 
        $first_img = '/images/default.jpg';
    }
    return $first_img;
}

例:

echo catch_that_image();

または

/**
 * @author: Marcelo Mesquita
 * @link: http://marcelomesquita.com/
 * @param (string) $size - valid: 'thumbnail', 'medium', 'large' or 'full_size'
 * @param (string) $add - any additional attributes for the html-img tag
 */
function wpse18215_the_thumb( $size = 'medium', $add = '' )
{
    global $wpdb, $post;

    $thumb = $wpdb->get_row( 
        "SELECT ID, 
         post_title 
         FROM {$wpdb->posts} 
         WHERE post_parent = {$post->ID} 
         AND post_mime_type 
         LIKE 'image%' 
         ORDER BY menu_order"
    );

    if( ! empty( $thumb ) )
    {
        $image = image_downsize( $thumb->ID, $size );
        return "<img src='{$image[0]}' alt='{$thumb->post_title}' {$add} />";
    }
}

例:

echo wpse18215_the_thumb( 'medium', 'class="alignleft" width="200" height="175"' );


注:テンプレート内では、呼び出しを条件付きステートメントにラップする必要があります。

if ( is_home() || is_front_page() ) { /* place the function call here */ }

1
kaiser