วิธีแสดงและจัดรูปแบบข้อมูลเมตาของโพสต์ใน WordPress

เผยแพร่แล้ว: 2017-10-26

Styling Post Meta Data

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

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

ในโพสต์นี้ ฉันจะแสดงวิธีแสดงและจัดรูปแบบข้อมูลเมตาของโพสต์

Post Meta Data คืออะไรและสามารถช่วยบล็อกของฉันได้อย่างไร

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

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

คุณควรแสดงข้อมูลเมตาของโพสต์เท่าใด

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

Post Meta Data

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

ตอนนี้เรามาดูกันว่าคุณสามารถปรับแต่งและเพิ่มเมตาโพสต์ได้อย่างไร

การปรับแต่งโพสต์ Meta Data

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

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

โดยทั่วไป คุณจะพบเมตาแท็กของโพสต์ในหน้า index.php , single.php , archive.php และ เทมเพลตเนื้อหา

รหัสง่าย ๆ จะมีลักษณะดังนี้:

โพสต์เมื่อ

 <?php the_time('F jS, Y'); ?> โดย <?php the_author_posts_link(); ?> <?php edit_post_link(); ?>

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

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

ขั้นแรก คุณจะต้องสร้างธีมย่อยก่อนทำการเปลี่ยนแปลงใดๆ

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

Post Meta from front-end

สมมติว่าเราต้องการเพิ่มไอคอนผู้ใช้ก่อนชื่อผู้เขียน โดยทำดังนี้

ในธีม TwentySeventeen เทมเพลต single.php จะใช้เพื่อแสดงโพสต์เดียว ตอนนี้ให้มองหา get_template_part และสังเกตเส้นทางเทมเพลตที่นั่น ในกรณีของเรา เส้นทางคือ:

 get_template_part( 'เทมเพลต-ชิ้นส่วน/โพสต์/เนื้อหา', get_post_format() );

ตอนนี้ตามเส้นทางเปิด content.php และค้นหา ส่วนหัว ของรายการ

 <header class="entry-header">

<?php

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

echo '<div class="entry-meta">';

ถ้า ( is_single() ) {

ยี่สิบเจ็ด_posted_on();

} อื่น {

echo ยี่สิบเจ็ดสิบเอ็ด_time_link();

ยี่สิบเจ็ด_edit_link();

};

echo '</div><!-- .entry-meta -->';

};

 

ถ้า ( 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>' );

} อื่น {

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

}

?>

</header>

<!-- .entry-header -->

เราสามารถเห็น Twenseventeen_posted_on(); เรียกฟังก์ชันนี้เพื่อแสดงเมตาโพสต์ เราต้องแก้ไขฟังก์ชันนี้ คุณจะพบฟังก์ชันนี้ในไฟล์ template-tags.php

เคล็ดลับ: ตรวจสอบไฟล์ function.php ของธีมเพื่อรับชื่อไฟล์และเส้นทาง

ค้นหา Twentyseventeen_posted_on() และคัดลอกวางฟังก์ชันทั้งหมดในไฟล์ function.php ของธีมลูกของคุณ (หากคุณไม่มีไฟล์ function.php ในธีมย่อย ให้สร้างไฟล์เปล่าที่มีชื่อเดียวกัน)

เราจะใช้ไอคอนแบบอักษรที่ยอดเยี่ยมที่นี่ วิธีที่ง่ายที่สุดในการใช้แบบอักษรที่ยอดเยี่ยมใน WordPress คือการติดตั้งปลั๊กอิน Better Font Awesome

 if ( ! function_exists( 'twentyseventeen_posted_on' ) ):

/**

* พิมพ์ HTML พร้อมข้อมูลเมตาสำหรับวันที่/เวลาและผู้เขียนปัจจุบัน

*/

ฟังก์ชั่น Twentyseventeen_posted_on() {

// รับชื่อผู้แต่ง; ห่อไว้ในลิงค์

$byline = sprintf(

/* ผู้แปล: %s: ผู้โพสต์ */

__( 'by %s', 'twentyseventeen' ),

'<span class="author vcard"><a class="url fn n" href="' . esc_url( get_author_posts_url( get_the_author_meta( 'ID' ) ) ) ) . '"><i class="fa-user" aria-hidden="true"></i>' get_the_author() . '</a></span>'

);

// สุดท้าย เรามาเขียนทั้งหมดนี้ลงในหน้ากัน

echo '<span class="posted-on">' . Twenseventeen_time_link() . '</span><span class="byline"> ' . $ทางสายย่อย '</span>';

}

เอนดิฟ;

ตอนนี้คุณสามารถเห็นไอคอนผู้ใช้ข้างชื่อผู้แต่ง

เคล็ดลับ: คุณสามารถทำการเปลี่ยนแปลงเหล่านี้ได้โดยตรงในไฟล์ content.php แต่การปฏิบัติตามโครงสร้างธีมเป็นแนวทางปฏิบัติที่ดี

การเพิ่มข้อมูลเมตาของโพสต์

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

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

Twentyseventeen > template-parts > post > content.php to Twenseventeen-child > template-parts > โพสต์ > content.php

ตอนนี้คุณต้องเขียนฟังก์ชันใหม่

คิดว่ามันยาก? จริงๆ แล้วไม่ใช่ นี่คือสิ่งที่คุณต้องทำ

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

ในตัวอย่างของเรา ในหมวดหมู่ธีม TwentySeventeen และแท็กจะถูกวางไว้หลังเนื้อหา ตอนนี้เราต้องปฏิบัติตามขั้นตอนการทำงานก่อนหน้านี้

เปิด content.php และดูว่าฟังก์ชันใดที่ใช้สำหรับหมวดหมู่และแท็ก

 <?php

ถ้า ( is_single() ) {

ยี่สิบเจ็ด_entry_footer();

}

?>

นี่คือยี่สิบเจ็ดสิบเอ็ด_entry_footer()

ไปที่ไฟล์ template-tags.php และค้นหา Twentyseventeen_entry_footer()

if ( ! function_exists( 'twentyseventeen_entry_footer' ) ):

/**

* พิมพ์ HTML พร้อมข้อมูลเมตาสำหรับหมวดหมู่ แท็ก และความคิดเห็น

*/

ฟังก์ชั่น Twentyseventeen_entry_footer () {

 

/* ตัวแปล: ใช้ระหว่างรายการ มีช่องว่างหลังเครื่องหมายจุลภาค */

$separate_meta = __( ', ', 'twentyseventeen' );

 

// รับหมวดหมู่สำหรับโพสต์

$categories_list = get_the_category_list( $separate_meta );

 

// รับแท็กสำหรับโพสต์

$tags_list = get_the_tag_list( '', $separate_meta );

 

// เราไม่ต้องการที่จะส่งออก .entry-footer ถ้ามันว่างเปล่า ดังนั้นตรวจสอบให้แน่ใจว่าไม่ใช่

ถ้า ( ( ( Twentyseventeen_categorized_blog() && $categories_list ) || $tags_list ) || get_edit_post_link() ) {

 

echo '<footer class="entry-footer">';

 

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

if ( ( $categories_list && Twentyseventeen_categorized_blog() ) || $tags_list ) {

echo '<span class="cat-tags-links">';

 

// ตรวจสอบให้แน่ใจว่ามีมากกว่าหนึ่งหมวดหมู่ก่อนที่จะแสดง

ถ้า ( $categories_list && Twentyseventeen_categorized_blog() ) {

echo '<span class="cat-links">' Twensenteen_get_svg( array( 'icon' => 'folder-open' ) ) . '<span class="screen-reader-text">' . __( 'หมวดหมู่', 'ยี่สิบเจ็ด' ) '</span>' . $categories_list '</span>';

}

 

ถ้า ( $tags_list ) {

echo '<span class="tags-links">' . Twenseventeen_get_svg( array( 'icon' => 'hashtag' ) ) '<span class="screen-reader-text">' . __( 'แท็ก', 'ยี่สิบเจ็ด' ) '</span>' . $tags_list '</span>';

}

 

ก้อง '</span>';

}

}

 

ยี่สิบเจ็ด_edit_link();

 

echo '</footer> <!-- .entry-footer -->';

}

}

เอนดิฟ;

ค้นหารหัสสำหรับหมวดหมู่และแท็ก จากนั้นคัดลอกและวางรหัสในไฟล์ function.php ของธีมลูกของคุณภายในฟังก์ชันใหม่เช่นนี้ -

ถ้า ( ! function_exists( 'twentyseventeen_post_meta' ) ):

/**

* พิมพ์ HTML พร้อมข้อมูลเมตาสำหรับวันที่/เวลาและผู้เขียนปัจจุบัน

*/

ฟังก์ชัน Twentyseventeen_post_meta() {

/* ตัวแปล: ใช้ระหว่างรายการ มีช่องว่างหลังเครื่องหมายจุลภาค */

$separate_meta = __( ', ', 'twentyseventeen' );

// รับหมวดหมู่สำหรับโพสต์

$categories_list = get_the_category_list( $separate_meta );

// รับแท็กสำหรับโพสต์

$tags_list = get_the_tag_list( '', $separate_meta );

echo '<span class="cat-tags-links">';

// ตรวจสอบให้แน่ใจว่ามีมากกว่าหนึ่งหมวดหมู่ก่อนที่จะแสดง

ถ้า ( $categories_list && Twentyseventeen_categorized_blog() ) {

echo '<span class="cat-links"><i class="fa fa-folder-open" aria-hidden="true"></i><span class="screen-reader-text">' __( 'หมวดหมู่', 'ยี่สิบเจ็ด' ) '</span>' . $categories_list '</span>';

}

ถ้า ( $tags_list ) {

echo '<span class="tags-links"><i class="fa fa-tags" aria-hidden="true"></i><span class="screen-reader-text">' __( 'แท็ก', 'ยี่สิบเจ็ด' ) '</span>' . $tags_list '</span>';

}

ก้อง '</span>';

};

เอนดิฟ;

คุณจะเห็นว่าฉันใช้ไอคอนแบบอักษรที่ยอดเยี่ยมสำหรับทั้งหมวดหมู่และแท็ก

การจัดรูปแบบโพสต์ Meta . ของคุณ

เนื่องจากเราได้วางเมตาแท็กไว้ในตำแหน่งที่ต้องการ ถึงเวลาต้องปรับเปลี่ยนสไตล์

มันตรงไปตรงมามาก ถ้าคุณรู้พื้นฐานของ CSS มาปรับหมวดหมวดหมู่และแท็กกันเถอะ

 .entry-header .cat-tags-links {

ขนาดตัวอักษร: 14px;

}

.entry-header .cat-links {

padding-ขวา: 5px;

}

Adjusted category and tags section

ตอนนี้มันดูแตกต่างออกไป

แต่ถ้าคุณต้องการแสดงไอคอนที่กำหนดเองของคุณแทนที่จะเป็นฟอนต์ที่ยอดเยี่ยมหรืออื่น ๆ คุณสามารถใช้รูปภาพของคุณเป็นภาพพื้นหลังใน CSS ได้ดังนี้:

 .entry-header .cat-links {

พื้นหลัง: url(category-img.jpg) ซ้ายตรงกลาง ห้ามทำซ้ำ;

ช่องว่างภายในซ้าย: 5px;

padding-ขวา: 5px;

}

.entry-header .tags-links {

พื้นหลัง: url(tag-img.jpg) ซ้ายตรงกลาง ห้ามทำซ้ำ;

ช่องว่างภายในซ้าย: 5px;

padding-ขวา: 5px;

}

เมื่อเสร็จแล้วอย่าลืมลบ font Awesome code ออกจากไฟล์ function.php ของคุณ

ลบโพสต์ Meta . ใด ๆ

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

Meta tag duplication

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

ดังนั้นรหัสใหม่จะมีลักษณะเช่นนี้ในธีมลูกของคุณ

 if ( ! function_exists( 'twentyseventeen_entry_footer' ) ):

/**

* พิมพ์ HTML พร้อมข้อมูลเมตาสำหรับหมวดหมู่ แท็ก และความคิดเห็น

*/

ฟังก์ชั่น Twentyseventeen_entry_footer () {

// เราไม่ต้องการที่จะส่งออก .entry-footer ถ้ามันว่างเปล่า ดังนั้นตรวจสอบให้แน่ใจว่าไม่ใช่

ถ้า (get_edit_post_link() ) {

echo '<footer class="entry-footer">';

ยี่สิบเจ็ด_edit_link();

echo '</footer> <!-- .entry-footer -->';

}

}

เอนดิฟ;

บทสรุป

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

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