3

正方形のワードプレスのサムネイルを取得する方法を知っている人はいますか?

これを使用すると、画像は正方形ではありません

<?php the_post_thumbnail( array(205,205) ); ?>

しかし、私がこれを行うと、それらは正方形になります

<?php the_post_thumbnail( array(135,135) ); ?>

たとえば、300 x 300 の正方形の画像でサムネイル ギャラリーを作成する必要があります。

4

1 に答える 1

8

最初に独自の画像サイズを作成する必要があります。これはadd_image_size()関数で行われます。

次のように実行できます。

if ( function_exists( 'add_theme_support' ) ) { 
    add_theme_support( 'post-thumbnails' );
    add_image_size( 'square-large', 300, 300, true); // name, width, height, crop 
    add_filter('image_size_names_choose', 'my_image_sizes');
}

function my_image_sizes($sizes) {
    $addsizes = array(
        "square-large" => __( "Large square image")
    );
    $newsizes = array_merge($sizes, $addsizes);
    return $newsizes;
}

これにより、テーマにサムネイルのサポートが追加されます (まだサポートされていない場合)。トリミングされた 300x300 ピクセルの新しい画像サイズが作成されます。2 番目の関数は、より適切な説明を提供し、メディア挿入ダイアログに確実に表示されるようにします。

するとこんな風に使えます。

<?php the_post_thumbnail( 'square-large' ); ?>

functions.phpこれらの行をテーマの に追加できます。テーマが更新されたときにこれらの行が上書きされないようにしたい場合は、子テーマを作成することを強くお勧めします。その方法については、こちらを参照してください

これは、既存のイメージには影響しません。次のコードを使用して、不足しているサムネイルを再作成できます。

include_once( ABSPATH . 'wp-admin/includes/image.php' );
function regenerate_all_attachment_sizes() {
    $args = array( 'post_type' => 'attachment', 'numberposts' => 100, 'post_status' => null, 'post_parent' => null, 'post_mime_type' => 'image' ); 
    $attachments = get_posts( $args );
    if ($attachments) {
        foreach ( $attachments as $post ) {
            $file = get_attached_file( $post->ID );
            wp_update_attachment_metadata( $post->ID, wp_generate_attachment_metadata( $post->ID, $file ) );
        }
    }       
}
regenerate_all_attachment_sizes();

これは一度だけ実行する必要があります。

于 2013-02-01T09:24:37.170 に答える