• August 28, 2017

    สร้างหน้าพิเศษ page-slug.php และ Custom Page Template

    สร้างไฟล์ชื่อ page-xxx.php
    xxx คือ slug (ส่วนต่อหลัง) Ex. vir9.com/xxx/

    pages.php ปกติจะแสดงหน้า page เช่น contact , about
    แต่หน้า xxx นี้จะเรียกใช้งานไฟล์ page-xxx.php
    ถ้าต้องการสร้างอีกหลายหน้าให้เหมือนหน้า xxx ก็ต้องสร้าง page-xxx.php ขึ้นมาอีก
    จะมีไฟล์เต็มไปหมดใน Theme

    วิธีแก้

    สร้าง Custom Page Template

    สร้างไฟล์ page-test.php ซึ่งต่อไปนี้จะเรียกว่า Test Template , ในไฟล์ ต้องมี code ดังนี้

    <?php
    /*
    Template name: Test
    */
    ?>

    Template ที่สร้างนี้ จะแสดงในหน้า admin cp ในส่วนของ page
    เมื่อเราสร้าง page ใหม่จะสามารถเลือกได้ (อยู่ด้านขวา)

    ในไฟล์ page-test.php จะเขียนโค๊ดที่เราต้องการไว้ เช่น

    <?php
    /*
    Template name: cat
    */
    get_header(); ?>
    	<div id="container">
    	<div id="content">
    
    		<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
    		<div <?php post_class(); ?> id="post-<?php the_ID(); ?>">
    		<h1 class="page-title"><?php the_title(); ?></h1>
    			<div class="content-ver-sep"> </div>
                <div class="entrytext">
     <?php the_post_thumbnail('thumbnail'); ?>
     <?php simplicity_content(); ?>
    
    				<?php wp_link_pages(array('before' => '<p><strong>Pages:</strong> ', 'after' => '</p>', 'next_or_number' => 'number')); ?>
    
    			</div>
    		</div>
    		<?php endwhile; ?><div class="clear"> </div>
    	<?php edit_post_link('Edit This Entry', '<p>', '</p>'); ?>
    <?php comments_template(); ?>
    	<?php else: ?>
    		<p>Sorry, no pages matched your criteria.</p>
    	<?php endif; ?>
    	</div>
    
    <?php /*get_sidebar(); */?> /*เอา sidebar ออก*/
    
    <?php /*get_footer(); */?> /* เอา footer ออก*/

    ทำ Custom Page ในแบบของตัวเอง
    เมื่อเราสร้างหน้า (Pages) ใหม่ขึ้นมาใน WordPress
    โดยทำ Static page (เช่น yyy.php) อัพขึ้นไปใน Theme  จะเรียกใช้โดยตรง (โดยพิมพ์ url ตรงๆ ) ไม่ได้ เพราะ จะไปติด rewriting rules ของ WordPress  (ระบบของ wordpress จะเรียกไฟล์โดยตรงไม่ได้)

    แต่ WordPress รองรับการสร้าง Templates ขึ้นมาใช้งานเฉพาะแต่ละหน้าได้
    เมื่อเราสร้างหน้าใหม่ขึ้นมา ตรงกล่อง Page Attributes จะมีตัวเลือกหนึ่งตัวเลือก นั่นคือ Template

    เราสามารถสร้าง Template ขึ้นมาสำหรับใช้งานเฉพาะแต่ละหน้าได้เช่นกัน ใช้ Custom Page Template สร้างหน้า Contact ขึ้นมา

    วิธีการสร้าง Custom Page Template  ( ใส่ฟังก์ชั่นของ PHP ของ WordPress ลงไป)
    สร้างไฟล์ PHP มีชื่อไฟล์ไม่ตรงกับชื่อไฟล์สงวนของ WordPress และเพิ่ม PHP Comment นี้ลงไปบรรทัดบนสุด

    <?
    /*
    Template Name: (ชื่อ Template อะไรก็ได้)
    */
    ?>

    – upload ไว้ในธีมที่ใช้
    – เมื่อเราต้องการสร้างหน้าใหม่โดยใช้เท็มเพลตนี้ ในกล่อง Page Attributes ก็เลือก Template เป็นเท็มเพลตนี้

    ref. https://teerapuch.com/2016/wordpress/page-template/


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

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






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

Categories