ใช้ Search & Filter Pro ค้นหาชื่อสมาชิกที่สร้างจาก CPT UI แล้ว แต่อยากให้ระบบค้นหาข้อมูลใน custom field ด้วย
ลองค้นในหน้านี้ https://searchandfilter.com/documentation/getting-started/adding-new-fields/
เขาบอกให้ไปดูข้อมูลจากหน้านี้ https://developer.wordpress.org/reference/functions/add_post_meta/
ก็ได้โค้ดนี้มาครับ แต่เอาไปแปะไว้ใน functions.php มันก็ไม่ให้ บอกประมาณว่าไฟล์มันซ้ำอะไรซักอย่าง งง?
เอาไปแปะไว้ในไฟล์ที่เป็นเทมเพลตของหน้าค้นหา ก็ไม่สามารถค้นข้อมูลจาก custom field ขึ้นมาได้
ขอคำแนะนำหน่อยครับ ขอบคุณครับ
function add_post_meta( $post_id, $meta_key, $meta_value, $unique = false ) { // Make sure meta is added to the post, not a revision. $the_post = wp_is_post_revision( $post_id ); if ( $the_post ) { $post_id = $the_post; } return add_metadata( 'post', $post_id, $meta_key, $meta_value, $unique ); }
ได้คำตอบแล้วครับ ไปถามจาก support ของ Search&filter มา เค้าบอกว่าต้องไปตั้งค่าที่ Relevanssi plugin (ใน Plant theme มีมาให้อยู่แล้ว) ให้รวม custom fields ด้วย แล้ว Build index ใหม่
จากนั้นผมก็ไป Rebuild cache ใน Search form ครับ แล้วก็เลยค้นหาได้ 🙂
รู้สึกดีกับการยอมจ่ายเงินใช้ plug in เสียเงินที่มี support ดีเลยอ่ะครับ
ส่วนตัวยังไม่เคยลองทำนะครับ
แต่ฟังก์ชั่นด้านบนน่าจะเป็น funciton ของ WordPress ไม่ใช่ตัวที่ทำให้เพิ่มฟิลที่เราสร้างนะครับ
ซึ่งตามลิงก์โค้ดก็คือการสร้างฟิลธรรมดา แต่ถ้าเราใช้ plugin acf สร้างก็ไม่ต้องเพิ่มโค้ดนะครับ
เห็นเข้าเขียนว่า acf เป็น 3party ด้วย อาจจะรองรับเลยหรือป่าวนะครับ
หมายถึง อยากให้ search คำค้นที่เป็น field ใหม่ที่เราสร้างด้วยใช่ไหมครับ
ลองค้นดูมีคนแนะนำให้ใช้ plugin ในการ search นะครับ
เช่น
แต่ถ้าเป็นโค้ดเลือกลองค้นแล้วน่าจะต้องประมาณนี้นะครับ แต่คนตั้งกระทู้ยังไม่ให้เช็คถูกเลยไม่แน่ใจว่าใช้เลยได้ไหมอาจต้องเทสโค้ดดูก่อนนะครับ
ผมใช้ Custom field ที่มากับ Plant theme น่ะครับ แต่มันไม่ค้นหาข้อมูลอื่นๆ นอกจาก Title ของโพสต์ ไม่ทราบว่ามันจะเกี่ยวกับการโค้ดหน้าแสดงผลหรือเปล่าครับ
<div id="result" class="s-slider -m1 -d3 -togrid"> <?php while ( have_posts() ) : the_post(); ?> <article id="post-<?php the_ID(); ?>" <?php post_class('content-item -card'); ?>> <div class="pic"> <?php if(has_post_thumbnail()) { the_post_thumbnail();} else { echo '<img src="' . esc_url( get_template_directory_uri()) .'/img/thumb.jpg" alt="'. get_the_title() .'" />'; }?> </div> <div class="info"> <header class="entry-header"> <h3 class="main-title"><?php the_title(); ?> <?php $nickname = get_field('nickname'); if (!empty ($nickname)) { echo " <span>(" .$nickname. ")</span>"; } ?> </h3> </header> <!-- เครือข่าย --> <?php $job = get_field('job_title'); if (!empty ($job)) { echo " <div> <span class='post-meta-key'><b>เครือข่าย/องค์กร:</b> </span> <span>".$job."</span> "; } ?> <!-- ประเด็นงาน --> <?php $jobDescription = get_field('member_job_Description'); if (!empty ($jobDescription)) { echo " <span class='post-meta-key'><b>ทำงานในประเด็น</b></span> <span>".$jobDescription."</span> "; } ?> <?php $jobDetail = get_field('job_detail'); if (!empty ($jobDetail)) { echo " <span class='post-meta-key'><b>ซึ่งเกี่ยวข้องกับ</b></span> <span>".$jobDetail."</span> </div>"; } ?> <?php $posttags = get_the_tags(); if (!empty ($posttags)) { echo '<div><b>ทำงานในพื้นที่</b> '; } foreach($posttags as $tag) { echo $tag->name . ' </div>'; } ?> </div> </article> <?php endwhile; ?> </div> <div> <a href="https://th.seedthemes.com/" style="position: relative; text-decoration: none; color: rgb(0, 0, 0); font-family: Verdana; font-size: 11px; opacity: 0.7; display: block;">Credit Coding by Menn @Seedthemes.com</a></div> </div>