วิธีแสดงค่าของฟิลด์ที่กำหนดเองในหน้า


17

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

วิธีที่ฉันใช้คือ:

<h1><?php the_title();?></h1>
<h3><?php echo get_post_meta(get_the_ID(), 'subtitle', TRUE); ?></h3>

นี่คือลิงค์ไปยังหน้า

ด้านล่างของ<hr/>หน้าคือรายการของเมตาทั้งหมดที่สร้างขึ้น ฟิลด์เดียวเท่านั้นที่จะแสดงคือ 'ราคา' ด้วยเหตุผลแปลก ๆ

ใครมีความคิดในสิ่งที่ฉันหายไป?


มันเป็นget_post_meta()ฟังก์ชั่นและถ้าคุณกำลังเรียกมันในลูปมันควรจะทำงาน ... ถ้าคุณไม่ได้ใช้ชื่อฟิลด์ที่กำหนดเองที่ถูกต้อง พวกเขามักจะมาพร้อมกับคำนำหน้าหากพวกเขามีการใช้งานผ่านปลั๊กอินเช่นเมตากล่อง คุณช่วยโพสต์โค้ดได้อย่างไรว่าจะประกาศฟิลด์ที่คุณกำหนดเองได้หรือไม่? วิธีแก้ปัญหาคือการเปิดตาราง wp_postmeta ใน PhpMyAdmin และค้นหาคอลัมน์meta_keyสำหรับ LIKE% ... % และระบุ "คำบรรยาย" เป็นค่า meta_key คุณจะเห็นได้อย่างชัดเจนภายใต้ชื่อ Wordpress ที่จัดเก็บฟิลด์ที่คุณกำหนดเอง
pixeline

ฉันรู้ว่านี่เก่า แต่ฉันใช้ sql นี้เพื่อรับรายการเขตข้อมูล meta ทั้งหมดใน phpmyadmin: เลือก m.meta_key จากกลุ่ม wp_postmeta m โดย m.meta_key
ssaltman

คำตอบ:


17

คุณกำลังใช้:

get_post_meta(get_the_ID(), 'subtitle', TRUE);

ดังนั้นคุณกำลังพูดกับ Wordpress เพื่อรับค่าเมตาของฟิลด์ 'คำบรรยาย' และค่าที่ส่งคืนจะอยู่ในรูปแบบของสตริง ดูget_post_meta () docu

หากต้องการรับข้อมูลเมตาทั้งหมดของโพสต์คุณควรใช้ฟังก์ชันget_post_custom ()แทน ตัวอย่างเช่นหากคุณอยู่ในลูป:

$custom = get_post_custom();
foreach($custom as $key => $value) {
     echo $key.': '.$value.'<br />';
}

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

if(isset($custom['price'])) {
    echo 'Price: '.$custom['price'][0];
}

บล็อกโค้ดสุดท้ายหายไปก)
คาร์ไบด์ 20

1
ปรากฏว่า$custom['price']ผลตอบแทนอาร์เรย์ดังนั้นคุณอาจต้องทำ$custom['price'][0]
วอล

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.