• April 25, 2018

    แบบที่1

    แสดงรูปแรก
    และเป็นขนาดใหญ่สุด
    ถ้าไม่เจอ จะแสดงรูป Default

    // Get Standard Post Image
    function get_post_image() {
      global $post, $posts;
      $first_img = '';
      ob_start();
      ob_end_clean();
      $output = preg_match_all('/<img.+src=[\'"]([^\'"]+)[\'"].*>/i', $post->post_content, $matches);
    
    if (!empty($matches[1][0]) ) {
    $first_img = $matches[1][0];
    } else {
    /*$first_img = 'http://insurancethai.net/wp-content/themes/insurancecenter/images/logo.png';*/
    $first_img = 'http://insurancethai.net/wp-content/themes/insurancecenter/images/random-img/rotate.php';
    }
    return $first_img;
    						}
    
    <img src="<?php echo get_post_image(); ?>" alt="<?php the_title(); ?>"/>

    เราต้องการให้แสดงภาพแรก ถ้าไม่เจอ แทนที่จะแสดงรูปที่ต้องการ ให้แสดง excerpt แทน

    $first_img = '.............';
    
    ใช้แทน
    $first_img = 'http://insurancethai.net/wp-content/themes/insurancecenter/images/random-img/rotate.php';
    
    แต่ต้องแก้ code ส่วนแสดง
    จาก 
    <a href="<?php the_permalink() ?>"  title="<?php the_title(); ?>">
    <img src="<?php echo get_post_image(); ?>" alt="<?php the_title(); ?>" width="200" height="100" /></a>
    
    เป็น
    
    <a href="<?php the_permalink() ?>"  title="<?php the_title(); ?>">
    <?php echo get_post_image(); ?></a>
    
    มันจะดึง ........... ที่เราได้กำหนดไว้ ใน functions.php มาแสดงในหน้า แสดงผล แทน
    โดยหน้าแสดงผลจะเห็นว่า มี <img src... ซึ่งต้องเอาออกไป
    เพราะ เป็น tag การแสดงภาพ โดยนำ url จาก code เดิมใน functions.php มาใส่
    คือ จะเป็น <img src="รูป"> ซึ่งถ้าไม่เอาออก excerpt ก็ใช้ไม่ได้ เพราะ ไม่ใช่ url
    
    แต่จะสร้างปัญหาใหม่
    คือ ถ้าโพสนั้นมีรูป มันก็จะโชว์เป็น url ของรูป แทนรูป เพราะ tag หน้าแสดงผล มันไม่มี <img =scr.. นั่นเอง
    
    จะทำอย่างไร?
    เราก็เอา code ส่วนที่แสดง ที่ถูกตัดออกไป มาใส่ในค่าใน functions.php แทน (วิธีใส่ ดูด้านล่าง ***)
    จะได้ไม่ต้องแสดงแต่ url เหมือน code เดิม
    แต่จะแสดงเป็น code แสดงรูปสมบูรณ์ในตัว คือ มี tag img
    <img src="<?php echo get_post_image(); ?>" alt="<?php the_title(); ?>"/>

    แบบที่2

    แสดงรูป ขนาดของ WordPress 150×150

    /*post_thumb ปรับจำนวนที่ setting>read ใน cp admin*/
    function post_thumb() {
    $files = get_children('post_parent='.get_the_ID().'&post_type=attachment&post_mime_type=image');
      if($files) :
        $keys = array_reverse(array_keys($files));
        $j=0;
        $num = $keys[$j];
        $image=wp_get_attachment_image($num, 'thumbnail', false);
        $imagepieces = explode('"', $image);
        $imagepath = $imagepieces[1];
        $thumb=wp_get_attachment_image($num, 'thumbnail', false);
        print "$thumb";
      endif;
    }

    แสดงรูป ขนาดของ WordPress medium

    เลือกแสดงรูป ลำดับไหนมาก็ได้
    ตั้งค่าลำดับรูปที่ต้องการแสดงได้

    ถ้าไม่กำหนดไปมันจะแสดงทุกรูป
    ถ้าไม่มีรูปแสดงค่าว่าง (ไม่แสดงอะไรมา)

    ใช้เพียง code ส่วนแสดงผล

    <?php
    $size = 'medium'; // whatever size you want 
    if ( has_post_thumbnail() ) {
        the_post_thumbnail( $size );
    } else {
        $attachments = get_children( array(
            'post_parent' => get_the_ID(),
            'post_status' => 'inherit',
            'post_type' => 'attachment',
            'post_mime_type' => 'image',
            'order' => 'ASC', // ลำดับการดึงรูป จากบนลงล่าง
            'orderby' => 'menu_order ID',
            'numberposts' => 1) // โชว์ 1รูป
        );
        foreach ( $attachments as $thumb_id => $attachment ) {
            echo wp_get_attachment_image($thumb_id, $size);
        }
    } 
    ?>
    
    ถ้าใส่แบบย่อ มันจะโชว์รูปทั้งหมดใน โพสนั้น แทนที่จะโชว์ รูปเดียว
    <?php
    $size = 'medium';
    if ( has_post_thumbnail() ) {the_post_thumbnail( $size );}
    else
    {$attachments = get_children( array('post_parent' => get_the_ID(),));
    foreach ( $attachments as $thumb_id => $attachment )
    {echo wp_get_attachment_image($thumb_id, $size);}
    } 
    ?>

    เราจะเอาส่วนแสดงผลให้ไปอยู่ใน functions.php และเรียกมาใช้แค่ code สั้นๆก็ได้

    function get_post_image-medium() {				
    $size = 'medium';
    if ( has_post_thumbnail() ){
    		the_post_thumbnail( $size );
    		}
    
    else{$attachments = get_children
    		(
    		array(
    		'post_parent' => get_the_ID(),
    		'order' => 'ASC',
    		'numberposts' => 1
    		)
    		);
    foreach ( $attachments as $thumb_id => $attachment )
    		{echo wp_get_attachment_image($thumb_id, $size);
    		}
    	} 
    	}	
    
    

    ส่วนแสดงผล จะเป็น code สั้นๆ แทน ส่วนแสดงผลอันเดิม

    <?php get_post_image-medium() ?>

    แบบที่3

    แสดงรูปแรกแบบลดขนาดของ wordpress
    ไม่มีรูป จะแสดงค่าว่าง (ไม่ดึงอะไรมา)

    // เรียกรูปแรก  แบบที่3
    //function to call first uploaded image in functions file
    function main_image() {
    $files = get_children('post_parent='.get_the_ID().'&post_type=attachment
    &post_mime_type=image&order=desc');
      if($files) :
        $keys = array_reverse(array_keys($files));
        $j=0;
        $num = $keys[$j];
        $image=wp_get_attachment_image($num, 'large', true);
        $imagepieces = explode('"', $image);
        $imagepath = $imagepieces[1];
        $main=wp_get_attachment_url($num);
            $template=get_template_directory();
            $the_title=get_the_title();
        print "<img src='$main' alt='$the_title' class='frame' />";
      endif;
    }
    
    <?php if (  (function_exists('has_post_thumbnail')) && (has_post_thumbnail())  ) {
      echo get_the_post_thumbnail($post->ID);
    } else {
       echo main_image();
    } ?>
    

    ถ้าเอาการแสดงผลของ แบบ2 (medium)ไปแทน การแสดงผล ของแบบ1
    จะทำให้
    แสดงรูป ขนาดของ WordPress medium
    เลือกแสดงรูป ลำดับไหนมาก็ได้
    ตั้งค่าลำดับรูปที่ต้องการแสดงได้
    ถ้าไม่กำหนดไปมันจะแสดงทุกรูป
    ถ้าไม่มีรูปแสดงค่าว่าง (ไม่แสดงอะไรมา)

    กว้างยาวของภาพ 300 (medium) จะถูกปรับโดย css ของ แบบ1
    นั่นคือ ไม่ต้องดึงรูป ขนาดใหญ่มาแล้ว แถมไม่จำเป็นต้องแสดงออกมาแบบเต็ม300 เพราะ css คุมอยู่

    ***

    code นี้
    
    <?php
    $first_img = $matches[1][0];
    ?>
    
    ค่า $first_img แสดงเป็น url รูป
    -----
    ผมต้องการเอา <img src=" "> ใส่คร่อมเข้าไปได้อย่างไรครับ
    
    ลองแบบนี้แล้วมันเออร์เร่ออ่ะ
    <img src="$matches[1][0]"/>
    
    -----
    เพิ่มเติม
    อยากให้ออกมาเป็นรุปนี้อ่ะ
    
    <?php
    $first_img = <img src="$matches[1][0]"/>
    ?>
    
    เพราะ ต้องการจะเอาค่า $first_img ไป ใช้อีกที

    ตอบ

    <?php
    $first_img = '<img src="'.$matches[1][0].'"/>';
    ?>

    https://web.facebook.com/groups/122558751110047/permalink/1896128987086339/?comment_id=1896137760418795&reply_comment_id=1896140970418474&notif_id=1524736397418615&notif_t=group_comment&ref=notif



เวอไนน์ไอคอร์ส

ประหยัดเวลากว่า 100 เท่า!






เวอไนน์เว็บไซต์⚡️
สร้างเว็บไซต์ ดูแลเว็บไซต์

Categories