Tag: wordpress

  • [WordPress] ผนึกกำลัง Facebook, Twitter และ Google+

    [WordPress] ผนึกกำลัง Facebook, Twitter และ Google+

    ตอนนี้อะไรที่เป็น Social Network ช่วยให้เว็บของเรามีการประชาสัมพันธ์ออกไปได้ง่ายกว่าแต่ก่อน ซึ่งตัว WordPress เองก็มี Plugin อยู่หลาย ๆ ตัวที่ใช้สำหรับที่จะผนึกกำลัง WordPress ของเรากับบรรดา Social Network ต่าง ๆ แต่ครั้งนี้ไม่ได้มาแนะนำ Plugin นะครับ แต่เราจะมาเขียนการเชื่อมต่อ ๆ ต่างเองครับ ^^

    Facebook Comment

    เดี๋ยวนี้คนเราก็ Sign in facebook ไว้ตลอดอยู่แล้ว เลยเป็นเรื่องง่ายที่จะใช้ Facebook Comment แทนที่ WordPress Comment ที่เราใช้งานอยู่

    นอกเรื่องนิดนึง เรายังมีระบบ Comment แบบอื่นที่ใช้แทนที่ตัว WordPress Comment ได้ อย่างเช่น IntenseDebate หรือ Disqus ซึ่งทั้งสองตัวก็มี Plugin ที่ใช้งานกับ WordPress โดยเป็น IntenseDebate Comments และ Disqus Comment System

    ซึ่งจริง ๆ แล้วตัว Facebook Comment นั่นก็มี Plugin สำหรับ WordPress ไว้อยู่เหมือนกัน ก็คือ Facebook Comments for WordPress แต่ไม่รู้เหมือนกัน ว่าทำไมบางทีบางคนที่ติดตั้งก็ใช้งานมันไม่ได้ ดังนั้นก็ตัดปัญหาโดยไปจัดการเขียนมันเองแล้วกัน

    สร้าง Facebook Application

    ก่อนจะติดตั้ง Facebook Comment ลงในเว็บของเรา ให้เราไปสร้าง Facebook Application ก่อน ไปที่ Facebook Application กดที่ “+ Create New App” จะปรากฎแบบนี้ ก็กรอกข้อมูลลงไป

    [Wordpress] ผนึกกำลัง Facebook, Twitter และ Google+ [1]

    หลังจากที่สร้างเสร็จแล้ว ก็จะได้ Application มาประมาณนี้ครับ

    [Wordpress] ผนึกกำลัง Facebook, Twitter และ Google+ [5]

    ติดตั้ง Facebook Comment ลงในเว็บของเรา

    ไปเอา Code จากที่ Facebook Comments plugin page กรอกข้อมูลของตัว Facebook Comment ลงไป

    [Wordpress] ผนึกกำลัง Facebook, Twitter และ Google+ [6]

    กด Get Code เราก็จะได้ส่วนของ Code ที่เราจะนำไปแปะในเว็บของเรา อย่าลืมเลือก Application ให้ตรงกับที่เราสร้างขึ้นมาด้วยนะครับ

    [Wordpress] ผนึกกำลัง Facebook, Twitter และ Google+ [7]

    คราวนี้เราไปแก้ไขตัว header.php โดยนำ code ในส่วนหัวข้อที่ 1 ไปวางแปะหลังจาก tag body

    [php]
    <div id="fb-root"></div>
    <script>(function(d, s, id) {
    var js, fjs = d.getElementsByTagName(s)[0];
    if (d.getElementById(id)) return;
    js = d.createElement(s); js.id = id;
    js.src = "//connect.facebook.net/en_US/all.js#xfbml=1&appId=เลขที่ Application ID ของเรา";
    fjs.parentNode.insertBefore(js, fjs);
    }(document, ‘script’, ‘facebook-jssdk’));</script>
    [/php]

    หลังจากนั้นเราจะนำส่วนหัวข้อที่ 2 ไปแทนที่ส่วนของ WordPress Comment แต่อย่าลืมเปลี่ยนในส่วนของหัวข้อ data-href ให้เป็น <?php the_permalink(); ?> ด้วยนะครับ เพื่อที่เราจะแยก Comment ในแต่ละหน้าออกจากกัน

    [php]
    <div class="fb-comments" data-href="<?php the_permalink(); ?>" data-num-posts="10" data-width="870"></div>
    [/php]

    แล้วส่วนนี้จะไปวางแปะที่ไหนเหรอ ก็ให้ไปที่ comments.php แล้วนำ code นี้ไปวางแปะแทนที่ทั้งหมดไปเลย หรือจะเขียนเงื่อนไขในการแสดงก็ตามใจแต่เราจะปรับแต่งเลยครับ ซึ่งเราสามารถไปดูรวม Comment ในเว็บเราได้ที่ Comment Moderation tool

    ดึง Latest Tweet ของเรามาโชว์

    โดยเราจะดึงตัว RSS ของตัว Twitter มาใช้ ซึ่งตัว RSS ที่เราจะใช้ก็คือ

    https://api.twitter.com/1/statuses/user_timeline.rss?screen_name=xxxxx

    ตัว xxxxx นั้นก็ให้เราใส่ชื่อลงไป เช่นของผม @Rabbitinblack ก็ใส่เป็น

    https://api.twitter.com/1/statuses/user_timeline.rss?screen_name=rabbitinblack

    ส่วน Code ที่เราจะนำไปใช้ก็มาจาก CSS Tricks โดยปรับมาใช้แบบนี้ครับ

    [php]
    <?php
    include_once(ABSPATH . WPINC . ‘/feed.php’);
    $rss = fetch_feed(‘https://api.twitter.com/1/statuses/user_timeline.rss?screen_name=rabbitinblack’);
    $maxitems = $rss->get_item_quantity(3);
    $rss_items = $rss->get_items(0, $maxitems);
    ?>
    <ul>
    <?php if ($maxitems == 0) echo ‘<li>No items.</li>’;
    else
    // Loop through each feed item and display each item as a hyperlink.
    foreach ( $rss_items as $item ) : ?>
    <li><a href='<?php echo $item->get_permalink(); ?>’><?php echo $item->get_title(); ?></a></li>
    <?php endforeach; ?>
    </ul>
    [/php]

    จากที่ผมทดลองดูตัว get_item_quantity จะได้สูงสุดที่ 20 นะครับ ที่เหลือจะเพิ่มเติม code หรือจะนำไปวางไว้ตรงไหนก็แล้วแต่เราเลยครับ

    ดึง Tweet ที่เรา Favorite ไว้

    ถ้าตามไปดูที่เว็บ CSS Tricks จะเห็นว่าเค้าดึงเป็น Tweet ที่ Favorite ไว้ ดังนั้นเราจึงทราบว่า ต้องใช้ RSS ที่ตัวไหน

    https://twitter.com/favorites/xxxxx.rss

    เช่นกันในส่วนของ xxxxx ก็ให้เป็นชื่อแทน

    https://twitter.com/favorites/rabbitinblack.rss

    ใช้ Official Twitter Widget

    เราสามารถสร้าง Twitter Widget ได้ง่าย ๆ โดยไปที่ official Twitter profile widget

    [WordPress] ผนึกกำลัง Facebook, Twitter และ Google+ [9]

    และหลังจากที่ปรับแต่งค่าต่าง ๆ เสร็จแล้ว ก็นำ Code ไปใช้งานได้แล้วครับ วิธีที่ง่ายที่สุดก็คือในส่วนของหลังบ้าน WordPress ของเรา เข้าไปที่

    Appearance => Widgets

    แล้วก็เพิ่มตัว Text Widget ลงไป แล้วในช่องที่ให้กรอกข้อความ ก็แปะ Code ที่ได้มาจากตัว Official Twitter Widget มาแปะก็เสร็จแล้วครับ

    แต่ Plugin สำหรับ Twitter ก็มีนะ

    แน่นอนครับ สำหรับ WordPress ที่มี Plugin ให้เราเลือกเยอะแยะมากมายอยู่แล้ว จะไม่มี Plugin สำหรับตัว Twitter Widget ก็ยังไงอยู่

    เพิ่มปุ่ม Share ไปยัง Facebook, Twitter และ Google+

    [WordPress] ผนึกกำลัง Facebook, Twitter และ Google+ [10]

    เรามาดูกันทีละตัวเลยแล้วกันนะครับ โดย Code เราก็ต้องมีการปรับเปลี่ยนเพื่อให้ใช้ในทุกจุด

    Facebook

    สำหรับตัว Facebook Like Button นั้น เมื่อเราเข้าไปปรับแต่งค่าต่าง ๆ เพื่อนำมาใช้งานในเว็บเราแล้ว

    [Wordpress] ผนึกกำลัง Facebook, Twitter และ Google+ [11]

    โดย Code ที่ได้ในส่วนที่ 1 จะเหมือนกับที่เราได้ตอนทำ Facebook Comment ดังนั้นถ้าเราเคยแปะ Code ในส่วนที่ 1 ในส่วนของ header.php ด้านล่างของ tag body ไปแล้ว ก็ไม่ต้องแปะซ้ำ

    [Wordpress] ผนึกกำลัง Facebook, Twitter และ Google+ [12]

    แต่ในส่วนที่ 2 นั้น จะมีการเพิ่ม href="<?php the_permalink(); ?>" ลงไปเพิ่มเติมจาก

    [php]
    <div class="fb-like" data-href="https://rabbitinblack.com" data-send="false" data-layout="button_count" data-width="55" data-show-faces="false"></div>
    [/php]

    เป็น

    [php]
    <div class="fb-like" data-href="https://rabbitinblack.com" href="<?php the_permalink(); ?>" data-send="false" data-layout="box_count" data-width="55" data-show-faces="false"></div>
    [/php]

    Twitter

    สำหรับ Twitter Button นั้น เลือกที่ Share a link เพื่อสร้างปุ่มขึ้นมา

    [Wordpress] ผนึกกำลัง Facebook, Twitter และ Google+ [13]

    ซึ่ง Code ที่ได้มาเป็นแบบนี้ครับ

    [php]
    <a href="https://twitter.com/share" class="twitter-share-button" data-via="Rabbitinblack">Tweet</a>
    <script>
    !function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");
    </script>
    [/php]

    โดยเราจะเพิ่มส่วนของ data-text="<?php the_title(); ?>" และ data-url="<?php the_permalink(); ?>" แต่ถ้าอยากได้ปุ่มแบบมีการนับในแนวตั้งก็ให้ใส่ data-count="vertical" ลงไปด้วย

    [php]
    <a href="https://twitter.com/share" class="twitter-share-button" data-via="Rabbitinblack" data-count="vertical" data-text="<?php the_title(); ?>" data-url="<?php the_permalink(); ?>">Tweet</a>
    <script>
    !function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");
    </script>
    [/php]

    ซึ่งเราสามารถหาข้อมูลของ Tweet Button ได้เพิ่มที่ official Twitter button documentation page

    Google+

    และสุดท้ายกับปุ่ม +1 ของ Google+ นั้น เมื่อเราปรับแต่งรูปแบบของปุ่ม +1 แล้ว

    [Wordpress] ผนึกกำลัง Facebook, Twitter และ Google+ [14]

    Code ที่ได้มานั้น

    [php]
    <!– Place this tag where you want the +1 button to render –>
    <g:plusone size="tall"></g:plusone>

    <!– Place this render call where appropriate –>
    <script type="text/javascript">
    (function() {
    var po = document.createElement(‘script’); po.type = ‘text/javascript’; po.async = true;
    po.src = ‘https://apis.google.com/js/plusone.js’;
    var s = document.getElementsByTagName(‘script’)[0]; s.parentNode.insertBefore(po, s);
    })();
    </script>
    [/php]

    เราแค่เพิ่ม href="<?php the_permalink(); ?>" ลงไปในส่วน g:plusone แบบนี้ครับ

    [php]
    <!– Place this tag where you want the +1 button to render –>
    <g:plusone size="tall" href="<?php the_permalink(); ?>"></g:plusone>

    <!– Place this render call where appropriate –>
    <script type="text/javascript">
    (function() {
    var po = document.createElement(‘script’); po.type = ‘text/javascript’; po.async = true;
    po.src = ‘https://apis.google.com/js/plusone.js’;
    var s = document.getElementsByTagName(‘script’)[0]; s.parentNode.insertBefore(po, s);
    })();
    </script>
    [/php]

    เท่านี้ก็เสร็จแล้ว เราสามารถหาข้อมูลของปุ่ม +1 เพิ่มเติมได้ที่ official Google+ button documentation page ครับ ^^

  • [WordPress] สร้างหัวข้อบทความแนะนำ (Featured Post) แบบง่าย ๆ

    [WordPress] สร้างหัวข้อบทความแนะนำ (Featured Post) แบบง่าย ๆ

    ในหน้า ฝากคำถาม ของผม คุณ VattanaLapanich ได้ถามว่า

    อยากทำ featured post คล้ายๆ กับของ it24hrs ที่พี่เม่น Modified ไว้ครับ

    คือ ผมเองก็ไม่รู้หรอกครับ ว่าพี่เม่นเค้าเขียนไว้ยังไง แล้วก็ไม่มี code ของเว็บด้วย แต่ผมมีวิธีง่าย ๆ มานำเสนอครับ นั่นก็คือ

    สร้าง Category ชื่อ “บทความแนะนำ”

    วิธีง่าย ๆ ไม่ต้องคิดมากครับ สร้าง Category มาใหม่เลยครับ ให้ชื่อว่า “บทความแนะนำ” ก็แล้วกัน

    [Wordpress] สร้างหัวข้อบทความแนะนำ (Featured Post) แบบง่าย ๆ [1]

    ใน slug ก็ใส่อะไรที่มันสื่อถึงตัว category ดังนั้นเลยตั้งว่า featured-post

    [Wordpress] สร้างหัวข้อบทความแนะนำ (Featured Post) แบบง่าย ๆ [2]

    แล้วก็เขียน code ในลักษณะนี้ เพื่อนำไปวางแปะในส่วนที่จะโชว์บทความแนะนำของเรา

    [php]
    <?php

    $args = array(
    ‘category_name’ => ‘featured-post’,
    ‘posts_per_page’ => 3
    );

    $feature_query = new WP_Query($args);

    if( $feature_query -> have_posts() ) : while ( $feature_query->have_posts() ) : $feature_query->the_post();

    // ใส่ code ที่จะแสดงผลลงไป

    endwhile;
    endif;
    wp_reset_postdata();

    ?>
    [/php]

    โดย category_name ก็มาจาก slug ที่เราตั้ง และ posts_per_page นั้นคือเราต้องการโชว์บทความแนะนำมากที่สุดกี่บทความ ในตัวอย่างใส่ไว้เป็นจำนวน 3 แต่ปรับเปลี่ยนได้ตามที่ต้องการครับ

    เสร็จแล้ว ก็ไปเลือกบทความของเราที่จะโชว์เป็นบทความแนะนำให้อยู่ใน category ที่เราสร้างขึ้นมา เท่านี้เราก็จะได้หัวข้อบทความแนะนำแล้วครับ

  • [WordPress Plugin] เริ่มหัดสร้าง Plugin สำหรับ WordPress กัน

    [WordPress Plugin] เริ่มหัดสร้าง Plugin สำหรับ WordPress กัน

    ในการทำเว็บ WordPress นั้น คงไม่ใช่ทุกครั้งที่ตัว WordPress จะตอบสนองความต้องการในการทำเว็บเราได้ทั้งหมด ดังนั้นเราจึงต้องมีการปรับแต่งตัว WordPress ของเราในรูปแบบต่าง ๆ

    ทำไมถึงต้องสร้าง Plugin

    บางครั้งเราก็ทำการปรับแต่ง code โดยตรง ซึ่งจะมีปัญหาเมื่อ WordPress มีการอัพเดต เพราะ code ที่เราเขียนไว้ก็จะถูกทับโดย code ของตัวอัพเดตจาก WordPress ซึ่งแก้ไขได้โดย

    1. อย่าไปอัพเดต WordPress มันเลย
    2. อัพเดตตามปรกตินั่นละ แต่มาเขียนใหม่อีกที
    3. สร้าง Plugin เพื่อที่เมื่ออัพเดต code ที่เราปรับแต่ง WordPress ไปก็ยังอยู่

    ที่พูดถึงไม่เฉพาะตัว WordPress อย่างเดียวนะครับ ยังรวมไปถึง Theme ของ WordPress ด้วย ในการแก้ functions.php เมื่อเวลา Theme ตัวนั้นมีการอัพเดต สิ่งที่เราเขียนเพิ่มเติมลงไป ก็จะถูกทับด้วยไฟล์ที่อัพเดตมา

    ทำให้ WordPress เห็น Plugin ที่เราสร้างขึ้น

    ก่อนจะสร้าง Plugin มาลองทำให้ WordPress เห็น Plugin ที่เราสร้างขึ้นมาก่อน โดยผลลัพธ์จะเป็นแบบนี้นะครับ

    [Wordpress Plugin] เริ่มหัดสร้าง Plugin สำหรับ WordPress กัน [1]

    ไปที่ path /wp-content/plugins/ นะครับ แล้วสร้าง folder Plugin ของเรา ผมตั้งชื่อ folder เป็น rabbitinblack แล้วสร้างไฟล์ขึ้นมา ชื่อ rabbitinblack.php

    สังเกตจาก Plugin ที่ลง ๆ ไว้ในเว็บตัวเอง ทุกอันชื่อ folder กับชื่อไฟล์ php ที่ใช้ระบุรายละเอียด Plugin จะมีชื่อเหมือนกัน แต่ผมลองตั้งชื่อต่างกัน ก็ได้ผลเหมือนกันนะ แต่ทำตามสากลเค้าไปดีกว่า

    มาถึงส่วนที่จะทำให้ WordPress เห็น Plugin ของเราแล้วครับ คือการใส่ code นี้เข้าไป

    [php]
    <?php
    /*
    Plugin Name: Test Plugin
    Plugin URI: rabbitinblack.com/test
    Description: ทดสอบเขียน Plugin WordPress
    Author: Rabbitinblack
    Author URI: https://rabbitinblack.com/
    Version: 1.0
    */
    ?>
    [/php]

    และในหน้า Plugin ของเราก็จะปรากฎชื่อ Plugin ที่เราสร้างขึ้นมา

    [Wordpress Plugin] เริ่มหัดสร้าง Plugin สำหรับ WordPress กัน [1]

    ทดลองสร้าง Plugin

    คราวนี้เรามาทดลองสร้าง Plugin กันดูนะครับ ผมจะลองสร้าง Plugin ที่จะใส่คำว่า Title : ไว้ด้านหน้าของหัวข้อทุกตัวนะครับ code ก็จะประมาณนี้

    [php]
    <?php
    /*
    Plugin Name: Test Plugin
    Plugin URI: rabbitinblack.com/test
    Description: ทดสอบเขียน Plugin WordPress
    Author: Rabbitinblack
    Author URI: https://rabbitinblack.com/
    Version: 1.0
    */

    function add_title_word($text) {
    return ‘Title : ‘.$text;
    }

    add_filter(‘the_title’,’add_title_word’);

    ?>
    [/php]

    ซึ่งผลลัพธ์ที่ได้ ก็เป็นแบบนี้ครับ

    หัวข้อนี้คงจบแค่นี้ ไว้ผมหัดทำเพิ่มเติมได้ขนาดไหนแล้ว จะมาเขียนหัีวข้อต่อ ๆ ไปนะครับ ^^

  • [WordPress] ใส่ class ให้ tag body เพื่อใช้ในการปรับแต่ง

    [WordPress] ใส่ class ให้ tag body เพื่อใช้ในการปรับแต่ง

    ในการเขียนเว็บนั้น ตัว tag body ถือว่าเป็น tag ที่คลุมตัวเนื้อหาของเราไว้ ดังนั้นการที่เราใส่ class ให้กับตัว body ก็จะทำให้เราสามารถใช้ CSS ในการควบคุมการแสดงผลได้หลากหลายมากขึ้น โดย WordPress เองได้เตรียมคำสั่งที่ใช้สำหรับใส่ class ให้กับตัว tag body อยู่แล้ว นั่นก็คือ body_class เรามาดูวิธีการใช้งาน body_class กันนะครับ

    body_class

    วิธีใช้ง่าย ๆ ครับ ก็แค่ใส่ body_class ไปใน tag body เลยครับ

    [php gutter=”false”]
    <body <?php body_class(); ?>>
    [/php]

    แล้ว WordPress จะสร้าง class มาให้เราเอง โดยตัวอย่าง class ที่สร้างขึ้นให้ เช่น

    • home : ถ้าเป็นหน้า home
    • search : ถ้าเป็นหน้า search
    • postid-XXX : ถ้าเป็นหน้า post จะใส่ postid- ตามด้วยเลข ID ของ post นั้น
    • logged-in : ถ้าเราทำการ login ไว้อยู่
    • page-id-XXX : ถ้าเป็นหน้า page จะใส่ page-id- ตามด้วยเลข ID ของ page นั้น

    เป็นต้น

    ตัวอย่าง class ที่ WordPress สร้างขึ้น

    [php gutter=”false”]
    <body class="page page-id-18 page-template page-template-page-tools-php logged-in admin-bar">
    [/php]

    จะเห็นว่า มันได้สร้าง class ต่าง ๆ ขึ้นมา โดย class ที่สร้างขึ้นมานั้นก็บอกได้ว่า นี่เป็นหน้า page โดยเป็น id เลขที่ 18 ใช้ template คือ page-tools.php และ login อยู่ รวมถึง admin-bar ปรากฎอยู่ แต่ class ที่ WordPress สร้างขึ้นนั้น จะไม่มีเกี่ยวกับ category เลย เราจะมีวิธียังไง ให้มันมี class เกี่ยวกับ category ละ

    เพิ่ม class เกี่ยวกับ category ลงใน body_class

    ให้นำ code นี้ไปแปะใน functions.php

    [php]
    // add category nicenames in body class
    function category_id_class($classes) {
    global $post;
    foreach((get_the_category($post->ID)) as $category)
    $classes[] = $category->category_nicename;
    return $classes;
    }

    add_filter(‘body_class’, ‘category_id_class’);
    [/php]

    โดยเราสามารถนำไปประยุกต์ใช้งานได้ ว่าอยากจะให้เป็น class อย่างไรบ้าง อย่าง code ที่ยกตัวอย่างนั้น จะมี class เป็นชื่อของ category ผสมไปใน body_class ปรกติด้วย

    วิธีใช้งาน body_class เพิ่มเติม

    เราสามารถเพิ่ม class ที่เราต้องการได้ในคำสั่ง body_class ได้ง่าย ๆ โดย

    [php gutter=”false”]
    <body <?php body_class( ‘rabbitinblack’ ); ?>>
    [/php]

    คือ การใส่ class ชื่อ rabbitinblack เข้าไปเพิ่มเติมจาก body_class เดิม

    นำ body_class ไปประยุกต์ใช้กับ CSS

    การที่เราใส่ class ให้ tag body นั้น จะทำให้เราสามารถควบคุมการแสดงผลได้มากขึ้น โดยสมมติว่า ปรกติ div ที่มี id ชื่อ content กว้าง 900px แต่ในหน้า page ที่มี id เป็น 18 จะให้กว้างแค่ 500px เราก็สร้าง CSS แบบนี้ครับ

    [css]
    #content { width:900px; }
    .page-id-18 #content { width:500px; }
    [/css]

    ซึ่ง class ที่สร้างมาก็มีอยู่หลากหลาย ดังนั้นเราก็ทำ CSS ของเราในการควบคุมได้มากขึ้นจากเดิม ลองไปประยุกต์ใช้งานดูนะครับ

  • [Plugin WordPress] ทำให้ PHP ใช้ได้ใน Posts และ Pages

    [Plugin WordPress] ทำให้ PHP ใช้ได้ใน Posts และ Pages

    บางครั้งในแต่ละหน้าของ Post หรือ Page รวมถึงในส่วนของ Widget ของเรานั้น เราก็อยากจะแทรก code PHP โดยที่เราไม่ต้องไปเขียนแก้ที่ตัวไฟล์ อยากจะใส่ในช่องที่ให้ edit content มากกว่า ลอง Plugin ตัวนี้ครับ

    Exec-PHP

    โดย Exec-PHP นั้นเมื่อติดตั้งแล้วจะอยู่ในเมนูหัวข้อ Settings นะครับ

    [Plugin WordPress] ทำให้ PHP ใช้ได้ใน Posts และ Pages [1]

    ตัว Exec-PHP ไม่ได้มีอะไรให้เราปรับแต่งมากมาย

    [Plugin WordPress] ทำให้ PHP ใช้ได้ใน Posts และ Pages [2]

    เรามาลองเขียน Post ขึ้นมาทดสอบการใช้งานเบื้องต้นนะครับ

    [Plugin WordPress] ทำให้ PHP ใช้ได้ใน Posts และ Pages [3]

    ผลลัพธ์ที่ได้ เหมือนที่เราเขียน code PHP ลงในไฟล์ตามปรกติ

    [Plugin WordPress] ทำให้ PHP ใช้ได้ใน Posts และ Pages [4]

    แต่ในหน้าที่เราเขียน Post นั้นคงจะเห็นกล่องข้อความเตือนสีเหลืองด้านบนนะครับ ถ้าเราต้องการปิด ไม่ให้มันแสดงผล ให้เข้าไปที่ส่วนของเมนู Users ในหัวข้อ Your Profile นะครับ

    [Plugin WordPress] ทำให้ PHP ใช้ได้ใน Posts และ Pages [5]

    ที่หัวข้อด้านล่างจะมีหัวข้อแบบนี้ครับ

    [Plugin WordPress] ทำให้ PHP ใช้ได้ใน Posts และ Pages [6]

    ให้ติ๊กเลือกเพื่อที่จะปิดไม่ให้มันมีกล่องสีเหลืองเตือนทุกครั้ง

    Plugin : Exec-PHP
  • [WordPress] ดึง template แต่ละส่วนที่เขียนไว้ด้วย get_template_part

    [WordPress] ดึง template แต่ละส่วนที่เขียนไว้ด้วย get_template_part

    ในการทำ WordPress Theme นั้น Template หลัก ๆ ที่เรามีการใช้งาน จะมีส่วนของ header ซึ่งจะมี get_header(), footer ซึ่งจะมี get_footer() และ sidebar ที่จะมี get_sidebar() แล้วถ้าเราจะสร้าง Template ส่วนอื่น ๆ นอกเหนือจากนี้ละ จะมีวิธีการใช้งานอย่างไร

    WordPress : get_template_part

    ยกตัวอย่างเป็นส่วนของเมนู หรือส่วนของ nav เพราะคิดว่าเป็นส่วนที่ทุกเว็บน่าจะมีอยู่แล้ว เราก็สร้างไฟล์ชื่อ nav.php (จะตั้งชื่อว่า abc.php, navigation.php หรือ gee.php ก็แล้วแต่จะตั้งชื่อกันนะครับ แต่ตั้งให้ชื่อสื่อความหมายจะดีกว่านะครับ) โดยในไฟล์ nav.php นั้น เราก็เขียน code สำหรับเมนูเราตามปรกติ เช่น

    [php]
    <div id="nav">
    <?php wp_nav_menu( array(‘menu’ => ‘Main Menu’, ‘container’ => ”, ‘menu_id’ => ‘mainnav’, ‘menu_class’ => ‘clearfix’,’depth’=>’1′) ); ?>
    </div>
    [/php]

    คราวนี้ตำแหน่งที่เราต้องการจะใส่เมนูลงไป ก็ใส่ code ไปว่า

    [php]
    <?php get_template_part(‘nav’); ?>
    [/php]

    ทีนี้เวลาเราจะแก้ไขเมนู เราก็แก้ไขที่ไฟล์ nav.php ที่เดียว แล้วทุกที่ที่ใช้งานเมนูจาก nav.php ก็จะเปลี่ยนตาม

    แต่สมมติในหน้า single.php เราอยากจะใช้เมนูอีกแบบ เราสามารถสร้างไฟล์ชื่อ nav-single.php มาเพื่อใช้งานเฉพาะหน้า single.php ก็ได้ โดยจะเรียกใช้งานแบบนี้ครับ

    [php]
    <?php get_template_part(‘nav’,’single’); ?>
    [/php]

    WordPress : get_template_part กับ child theme

    แต่สิ่งสำคัญของ get_template_part นั้นคือการใช้ร่วมกับบรรดา child theme ทั้งหลาย เพราะ get_template_part จะมีหลักการค้นหาไฟล์แบบนี้ครับ สมมติเราเขียน code ว่า

    [php]
    <?php get_template_part(‘loop’,’index’); ?>
    [/php]

    มันก็จะไปหา loop-index.php ใน child theme ก่อนว่ามีมั้ย ถ้าไม่มีมันจะหา loop.php ใน child theme ถ้าไม่มีอีกจึงจะไปหา loop-index.php และ loop.php ใน theme หลักตามลำดับ เขียนเรียงลำดับได้ดังนี้

    1. loop-index.php ใน child theme
    2. loop.php ใน child theme
    3. loop-index.php ใน theme หลัก
    4. loop.php ใน theme หลัก

    ลองนำไปประยุกต์ใช้งานกันดูนะครับ ^^