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

เผยแพร่แล้ว: 2023-02-12

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

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

สารบัญ
1. ประโยชน์ของเทมเพลตที่กำหนดเอง
2. วิธีสร้างเทมเพลตโพสต์แบบกำหนดเอง
3. ฉันสามารถใช้ปลั๊กอินสำหรับสิ่งนี้ได้หรือไม่
4. บทสรุป

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

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

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

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

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

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

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

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

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

 [php]
<?php
/* ชื่อเทมเพลต: โพสต์แบบเต็มความกว้าง * ประเภทโพสต์เทมเพลต: โพสต์*/ /*เทมเพลตสำหรับแสดงโพสต์เดียวแบบเต็มความกว้าง */
get_header( );
?>
[/php]

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

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

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

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

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

ตัวอย่างโพสต์ปกติ

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

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

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

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

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

 [php]

<div class="ห่อ">

<div id="หลัก" class="พื้นที่เนื้อหา">
        	<main id="หลัก" class="site-main" บทบาท="หลัก">
              	<?php /* เริ่มวนรอบ */ while ( have_posts() ) : the_post(); get_template_part( 'เทมเพลตส่วน/โพสต์/เนื้อหา', get_post_format() ); // หากความคิดเห็นเปิดอยู่หรือเรามีอย่างน้อยหนึ่งความคิดเห็น ให้โหลดเทมเพลตความคิดเห็น ถ้า ( comments_open() || get_comments_number() ) : comments_template(); เอนดิฟ; the_post_navigation( array( 'prev_text' => '<span class="screen-reader-text">' . __( 'โพสต์ก่อนหน้า', 'twentyseventeen' ) . '</span><span aria-hidden="true" class="nav-subtitle">' . __( ' ก่อนหน้า', 'twentyseventeen' ) . '</span> <span class="nav-title"><span class="nav-title-icon-wrapper">' . twoseventeen_get_svg( array( 'icon' => 'arrow-left' ) ) . '</ span>%title</span>',
                          	'next_text' => '<span class="ตัวอ่านหน้าจอข้อความ">' . __( 'โพสต์ถัดไป', 'ยี่สิบเจ็ดสิบ' ) . '</span'><span aria-hidden="จริง" class="nav-subtitle">' . __( 'ถัดไป', 'ยี่สิบเจ็ดสิบ' ) . '</span> <span class="nav-title">%title<span class="nav-title-icon-wrapper">' . twoseventeen_get_svg( array( 'icon' => 'ลูกศรขวา' ) ) '</span</span>',
                    	) );
              	ในที่สุด; //จบลูป.
              	?>
[/php]

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

 [php]
get_template_part( 'ชิ้นส่วนแม่แบบ/โพสต์/เนื้อหา', get_post_format()
);
[/php] 
ไฟล์ wordpress บนเครื่องโลคัล

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

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

ไฮไลต์ไฟล์โพสต์แบบเต็มความกว้าง

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

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

ไฟล์เนื้อหาแบบเต็มความกว้างในโฟลเดอร์โพสต์บนเครื่องโลคัล

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

 [php]

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

        	ถ้า ( 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="บุ๊กมาร์ก">', '</a></h3>

' );
        	} อื่น {
              	the_title( '

<h2 class="entry-title"><a href="' . esc_url( get_permalink() ) . ' " rel="บุ๊กมาร์ก">', '</a></h2>

' );
        	}

        	ถ้า ( 'โพสต์' === get_post_type() ) {

              	เสียงสะท้อน '

<div class="entry-meta">';
                    	ถ้า ( is_single() ) {
                    	  	ยี่สิบเจ็ดสิบ_posted_on();
                    	} อื่น {
                          	ก้องยี่สิบเจ็ดสิบเจ็ด_time_link();
                          	ยี่สิบเจ็ดสิบเอ็ด_edit_link();
                    	};
              	เสียงสะท้อน '</div>

<!-- .entry-meta -->';
        	};
        	?>
  	</ส่วนหัว>

<-- .entry-header -->
[/php]

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

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

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

ภาพหน้าจอเต็มความกว้างของเว็บไซต์

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

โพสต์เต็มความกว้างพร้อมตรวจสอบภาพหน้าจอเว็บไซต์

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

 [css]
.post- template-full-width-post.has-sidebar:not(.error404) #primary{
ลอย:ไม่มี;
ความกว้าง:อัตโนมัติ;
}

.post- template-full-width-post .entry-header{
จัดข้อความ: กึ่งกลาง;
ขอบล่าง:1.3em;
}

.post- template-full-width-post .entry-meta{
border-top:1px solid #ccc;
ขอบล่าง: 1px solid #ccc;
ช่องว่างภายใน:15px 0;
}
[/css]

ตอนนี้เราได้เค้าโครงตามที่เราต้องการแล้ว โพสต์ใด ๆ ที่ใช้เทมเพลตนี้จะมีสไตล์เดียวกันนี้

โพสต์เต็มความกว้าง

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

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

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

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

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

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

บทสรุป

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

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