วิธีสร้างเทมเพลตโพสต์เดียวแบบกำหนดเองใน WordPress

เผยแพร่แล้ว: 2018-06-19

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

สนใจเรียนรู้วิธีสร้างเทมเพลตโพสต์เดียวแบบกำหนดเองหรือไม่ ในโพสต์นี้ ฉันจะแสดงให้คุณเห็นว่าคุณสามารถสร้างของคุณเองได้อย่างไร!

ประโยชน์ของเทมเพลตที่กำหนดเอง

ก่อนที่เราจะเริ่มสร้าง เรามาสำรวจกันว่าทำไมคุณจึงอาจต้องการเทมเพลตที่กำหนดเองและมันทำอะไรได้บ้าง

หากคุณต้องการให้โพสต์หรือโพสต์บางประเภทโดดเด่นกว่าเนื้อหาอื่นๆ ของคุณ คุณอาจต้องพิจารณาสร้างเทมเพลตสำหรับโพสต์เดี่ยวแบบกำหนดเอง เทมเพลตนี้จะใช้กับโพสต์ที่คุณกำหนดเท่านั้น ซึ่งหมายความว่าสามารถมีเลย์เอาต์ที่แตกต่างจากโพสต์มาตรฐานของคุณโดยสิ้นเชิง การออกแบบและเลย์เอาต์ที่เป็นเอกลักษณ์สามารถเพิ่มการมีส่วนร่วมของผู้ใช้สำหรับโพสต์นั้น ๆ

พร้อมที่จะพัฒนาตัวเองหรือยัง? การสร้างและการใช้เทมเพลตของโพสต์แบบกำหนดเองนั้นคล้ายกับเทมเพลตของเพจแบบกำหนดเอง

เลย์เอาต์โดยมู่เล่ วิธีสร้างเทมเพลตโพสต์แบบกำหนดเอง ผู้หญิงเวิร์ดเพรสนั่งอยู่ที่โต๊ะพร้อมแล็ปท็อปที่ติดสติกเกอร์

วิธีสร้างเทมเพลตโพสต์แบบกำหนดเอง

ฉันจะใช้ชุดรูปแบบ Twenty Seventeen สำหรับตัวอย่างของฉัน แต่กระบวนการจะเหมือนกันสำหรับชุดรูปแบบใด ๆ

ก่อนสร้างเทมเพลตโพสต์แบบกำหนดเอง ฉันจะสร้างธีมย่อยก่อน คุณสามารถทำงานในธีมหลักได้ แต่เนื่องจากคุณกำลังสร้างเทมเพลตที่กำหนดเอง หากคุณอัปเดตธีมหลัก เทมเพลตของคุณจะหายไป ด้วยเหตุนี้ จึงควรแยกเทมเพลตที่กำหนดเองออกจากธีมหลัก

สำหรับเทมเพลตที่กำหนดเอง คุณต้องกำหนดชื่อเทมเพลต (ชื่อของเทมเพลต) และประเภทโพสต์เทมเพลต (ตำแหน่งที่จะใช้เทมเพลตนี้) ดูเหมือนว่านี้:

<?php
/* Template Name: Full Width Post * Template Post Type: post*/ /*The template for displaying full width single posts. */
get_header( );
?>

เมื่อคุณบันทึกไฟล์ ให้เก็บชื่อไฟล์ที่เกี่ยวข้องกับชื่อเทมเพลต เช่น full-width-post.php หากคุณดูโพสต์จากแผงการดูแลระบบ จะแสดงเทมเพลตใหม่ในรายการดรอปดาวน์ของส่วนแอตทริบิวต์ของโพสต์

เลย์เอาต์โดยเทมเพลตโพสต์ที่กำหนดเองของมู่เล่ วิธีการโพสต์ เทมเพลตแอตทริบิวต์ เติมความกว้าง โพสต์

เทมเพลตที่กำหนดเองของเราพร้อมแล้ว แต่ยังไม่มีประโยชน์ มาทำให้มันมีประโยชน์ขึ้นอีกหน่อยเถอะ!

หมายเหตุ: เรากำลังดำเนินการกับไฟล์หลายไฟล์ ดังนั้นโปรดติดตามชื่อไฟล์และโฟลเดอร์

นี่คือเลย์เอาต์ปัจจุบันของหน้าโพสต์บล็อกในธีม Twenty Seventeen ฉันมีความสุขกับสิ่งนั้น ดังนั้นเราจะปล่อยให้มันเป็นไป

เลย์เอาต์โดยเทมเพลตโพสต์ที่กำหนดเองของมู่เล่ วิธีการโพสต์ปกติ ตัวอย่าง

ในตอนนี้ สมมติว่าคุณต้องการเค้าโครงแบบเต็มความกว้างสำหรับบางโพสต์ เราจะใส่ชื่อโพสต์เหนือข้อมูลเมตา ข้อมูลเมตาควรมีเส้นขอบที่ด้านบนและด้านล่าง และทั้งชื่อและข้อมูลเมตาควรจัดกึ่งกลาง นี่คือโครงลวด:

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

ในการสร้างเค้าโครงนี้ คุณต้องค้นหาว่าไฟล์ใดมีหน้าที่แสดงหน้ารายละเอียดโพสต์ ในธีมส่วนใหญ่ single.php เป็นไฟล์ เว้นแต่จะมีเทมเพลตที่กำหนดไว้ล่วงหน้าบางอย่าง โครงสร้างโค้ดแตกต่างกันไปในแต่ละธีม ดังนั้นอาจต้องใช้เวลาเรียนรู้เล็กน้อยเพื่อทำความเข้าใจว่าธีมเฉพาะของคุณทำงานอย่างไร

เมื่อคุณพบไฟล์ที่แสดงหน้ารายละเอียดโพสต์ คุณควรค้นหาว่ามีการใช้ฟังก์ชันเพื่อเรียกไฟล์อื่นหรือสร้างเทมเพลตโดยตรง ในตัวอย่างนี้กับธีม Twenty Seventeen มันคือฟังก์ชัน get_template_part

เส้นทาง get_template_part เป็นส่วนที่สำคัญที่สุดในการปฏิบัติตามที่นี่

<div class="wrap">

<div id="primary" class="content-area">
        	<main id="main" class="site-main" role="main">
              	<?php /* Start the Loop */ while ( have_posts() ) : the_post(); get_template_part( 'template-parts/post/content', get_post_format() ); // If comments are open or we have at least one comment, load up the comment template. if ( comments_open() || get_comments_number() ) : comments_template(); endif; the_post_navigation( array( 'prev_text' => '<span class="screen-reader-text">' . __( 'Previous Post', 'twentyseventeen' ) . '</span><span aria-hidden="true" class="nav-subtitle">' . __( 'Previous', 'twentyseventeen' ) . '</span> <span class="nav-title"><span class="nav-title-icon-wrapper">' . twentyseventeen_get_svg( array( 'icon' => 'arrow-left' ) ) . '</span>%title</span>',
                          	'next_text' => '<span class="screen-reader-text">' . __( 'Next Post', 'twentyseventeen' ) . '</span><span aria-hidden="true" class="nav-subtitle">' . __( 'Next', 'twentyseventeen' ) . '</span> <span class="nav-title">%title<span class="nav-title-icon-wrapper">' . twentyseventeen_get_svg( array( 'icon' => 'arrow-right' ) ) . '</span></span>',
                    	) );
              	endwhile; // End of the loop.
              	?>

อย่างที่คุณเห็น มันหมายถึงเส้นทาง:

get_template_part( 'template-parts/post/content', get_post_format()
);
เลย์เอาต์โดยเทมเพลตโพสต์ที่กำหนดเองของมู่เล่ วิธีการสร้างไฟล์เวิร์ดเพรสบนเครื่องท้องถิ่น

ดังนั้นไฟล์ content.php จึงถูกเรียกภายใน single.ph เพื่อส่งออกหน้ารายละเอียดโพสต์

เมื่อคุณทราบแล้วว่าไฟล์ single.php ทำงานอย่างไร ให้คัดลอกโค้ดจากนั้นนำไปวางลงในไฟล์ full-width-post.php สร้างไว้ก่อนหน้านี้ในธีมย่อย เนื่องจากจะเป็นเทมเพลตแบบเต็มความกว้าง เราจะนำแถบด้านข้างออก

เลย์เอาต์โดยเทมเพลตโพสต์ที่กำหนดเองของมู่เล่ วิธีการเน้นไฟล์โพสต์แบบเต็มความกว้าง

ตอนนี้คัดลอกไฟล์ content.php จากเส้นทางที่กล่าวถึงข้างต้น คุณสามารถวางลงในไดเร็กทอรีเดียวกันกับไฟล์เทมเพลตของคุณ แต่ฉันขอแนะนำให้ทำตามโครงสร้างโฟลเดอร์เดียวกันกับธีมหลัก

คุณสามารถคงชื่อไฟล์ไว้เหมือนเดิม แต่ถ้าคุณต้องการเปลี่ยนแปลงบางอย่างในเทมเพลตเริ่มต้น มันจะทำให้เกิดข้อขัดแย้ง ดังนั้นเพื่อหลีกเลี่ยงปัญหาใดๆ ฉันขอแนะนำให้เปลี่ยนชื่อไฟล์และทำให้มันเกี่ยวข้องกับชื่อเทมเพลต เช่น content-full-width.php

เลย์เอาต์โดยเทมเพลตโพสต์ที่กำหนดเองของมู่เล่ วิธีไฟล์เนื้อหาแบบเต็มความกว้างในโฟลเดอร์โพสต์บนเครื่องท้องถิ่น

ไฟล์อยู่ในตำแหน่งแล้ว ตอนนี้เรามาแก้ไขโค้ดเพื่อสลับชื่อโพสต์และข้อมูลเมตาของโพสต์

<header class="entry-header">
        	<?php

        	if ( is_single() ) {
              	the_title( '

<h1 class="entry-title">', '</h1>

' );
        	} elseif ( is_front_page() && is_home() ) {
              	the_title( '

<h3 class="entry-title"><a href="' . esc_url( get_permalink() ) . '" rel="bookmark">', '</a></h3>

' );
        	} else {
              	the_title( '

<h2 class="entry-title"><a href="' . esc_url( get_permalink() ) . '" rel="bookmark">', '</a></h2>

' );
        	}

        	if ( 'post' === get_post_type() ) {

              	echo '

<div class="entry-meta">';
                    	if ( is_single() ) {
                    	  	twentyseventeen_posted_on();
                    	} else {
                          	echo twentyseventeen_time_link();
                          	twentyseventeen_edit_link();
                    	};
              	echo '</div>

<!-- .entry-meta -->';
        	};
        	?>
  	</header>

<!-- .entry-header -->

หากต้องการใช้เทมเพลตนี้ ให้แก้ไขโพสต์ที่ต้องการจากผู้ดูแลระบบ WordPress และกำหนดเทมเพลตจากเมนูแบบเลื่อนลง

เลย์เอาต์โดยเทมเพลตโพสต์ที่กำหนดเองของมู่เล่ วิธีการโพสต์เทมเพลตที่กำหนดเองแบบเต็มความกว้างที่เลือกใน wordpress

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

เลย์เอาต์โดยเทมเพลตโพสต์ที่กำหนดเองของมู่เล่ วิธีการจับภาพหน้าจอเว็บไซต์แบบเต็มความกว้าง

เราต้องเพิ่ม CSS เพื่อให้เต็มความกว้าง WordPress อัตโนมัติสร้างคลาสตามชื่อเทมเพลตในส่วนเนื้อหา

เลย์เอาต์โดยเทมเพลตโพสต์ที่กำหนดเองของมู่เล่ วิธีการโพสต์แบบเต็มความกว้างพร้อมตรวจสอบภาพหน้าจอของเว็บไซต์

ใช้คลาสนั้นเพื่อกำหนดเป้าหมายเทมเพลตนี้ คุณสามารถเพิ่ม CSS ให้กับ style.css ของธีมลูก

.post-template-full-width-post.has-sidebar:not(.error404) #primary{
float:none;
width:auto;
}

.post-template-full-width-post .entry-header{
text-align:center;
margin-bottom:1.3em;
}

.post-template-full-width-post .entry-meta{
border-top:1px solid #ccc;
border-bottom:1px solid #ccc;
padding:15px 0;
}

ตอนนี้เราได้เค้าโครงตามที่เราต้องการแล้ว โพสต์ที่ใช้เทมเพลตนี้จะมีลักษณะเหมือนกันทุกประการ

เลย์เอาต์โดยเทมเพลตโพสต์ที่กำหนดเองของมู่เล่ วิธีการโพสต์แบบเต็มความกว้าง

คุณสามารถสร้างเทมเพลตแบบกำหนดเองได้มากเท่าที่คุณต้องการเพื่อให้เหมาะกับความต้องการของคุณ คุณยังสามารถสร้างเทมเพลตตามหมวดหมู่ของโพสต์ได้อีกด้วย

ฉันสามารถใช้ปลั๊กอินสำหรับสิ่งนี้ได้หรือไม่

หากคุณไม่สะดวกใจกับโค้ด PHP คุณสามารถใช้ปลั๊กอินบางตัวได้ แต่ฉันต้องยอมรับว่ามีปลั๊กอินน้อยมากสำหรับสร้างเทมเพลตโพสต์ที่กำหนดเอง และส่วนใหญ่ไม่มีประโยชน์มากนักเพราะคุณต้องสร้างเทมเพลตด้วยตนเอง

ฉันพบว่าปลั๊กอิน Post Custom Templates Lite มีประโยชน์มาก เป็นปลั๊กอินฟรีที่ช่วยให้คุณสร้างเทมเพลตโพสต์โดยไม่ต้องเขียนโค้ดในอินเทอร์เฟซแบบลากและวางที่ดี มีตัวเลือกการปรับแต่งมากมาย ดังนั้นหากคุณต้องการปรับแต่งเทมเพลตโพสต์ โดยทั่วไปแล้วปลั๊กอินนี้สามารถช่วยคุณได้

หมายเหตุ: เวอร์ชันฟรีอนุญาตให้คุณปรับแต่งเทมเพลตโพสต์ปกติเท่านั้น คุณต้องใช้เวอร์ชันโปรจึงจะสามารถสร้างเทมเพลตโพสต์ที่กำหนดเองและรับคุณลักษณะเพิ่มเติมบางอย่างได้

เลย์เอาต์โดยมู่เล่ วิธีสร้างเทมเพลตโพสต์ที่กำหนดเอง ผู้ชาย wordpress พิมพ์บนแล็ปท็อปนั่งบนโซฟาสีน้ำเงินกับสุนัข

บทสรุป

ไม่ว่าคุณจะทำงานด้วยตนเองหรือใช้ปลั๊กอินเพื่อสร้างเทมเพลตโพสต์เดียวแบบกำหนดเอง โพสต์ที่สำคัญที่สุดของคุณจะโดดเด่นกว่าที่อื่น สำหรับแรงบันดาลใจ ตรวจสอบเว็บไซต์ของ Brian Dean; เขาใช้เทมเพลตเฉพาะสำหรับโพสต์แนะนำฉบับสมบูรณ์เพื่อให้ดูไม่เหมือนใครจากโพสต์ที่เหลือ

ลองใช้และสร้างเทมเพลตโพสต์เดียวที่เป็นเอกลักษณ์ของคุณเอง

ภาพถ่ายทั้งหมดในบทความนี้ถ่ายภายในบริษัทที่ Flywheel


ยังต้องการโน้มน้าวลูกค้าของคุณหรือไม่?

การโน้มน้าวให้ลูกค้าของคุณจัดการโฮสติ้ง WordPress นั้นเหมาะสมกับธุรกิจของพวกเขาไม่ใช่เรื่องง่าย เพื่อช่วยภารกิจของคุณ เราได้จัดทำเอกสารประกอบการอธิบายคุณค่าของโฮสติ้งที่มีการจัดการซึ่งคุณสามารถส่งต่อไปยังลูกค้าของคุณได้โดยตรง ดาวน์โหลดได้ ที่นี่!


คุณจะเรียนอะไรต่อไป ลองหนึ่งในบทช่วยสอนเหล่านี้!

  • วิธีเลือกหน่วย CSS ที่ดีที่สุดเพื่อสร้างเลย์เอาต์เว็บไซต์ที่ดีขึ้น
  • วิธีเพิ่ม Google Map ที่ตอบสนองใน WordPress
  • วิธีย้ายไซต์ของคุณจาก Adobe Business Catalyst ไปยัง WordPress อย่างมีประสิทธิภาพ (+ ทรัพยากรมากกว่า 20 รายการ!)