การแจ้งเตือน
ลบทั้งหมด

[ได้คำตอบแล้ว] อยากให้ Search & Filter Pro ค้นหาข้อมูลใน custom field ด้วย ทำยังไงดีครับ?

5 โพสต์
2 ผู้ใช้
2 Likes
272 เข้าชม
0
หัวข้อเริ่มต้น

ใช้ 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 );
}
4 คำตอบ
0
หัวข้อเริ่มต้น

ได้คำตอบแล้วครับ ไปถามจาก support ของ Search&filter มา เค้าบอกว่าต้องไปตั้งค่าที่ Relevanssi plugin (ใน Plant theme มีมาให้อยู่แล้ว) ให้รวม custom fields ด้วย แล้ว Build index ใหม่

จากนั้นผมก็ไป Rebuild cache ใน Search form ครับ แล้วก็เลยค้นหาได้ 🙂

รู้สึกดีกับการยอมจ่ายเงินใช้ plug in เสียเงินที่มี support ดีเลยอ่ะครับ

1

ส่วนตัวยังไม่เคยลองทำนะครับ

แต่ฟังก์ชั่นด้านบนน่าจะเป็น funciton ของ WordPress ไม่ใช่ตัวที่ทำให้เพิ่มฟิลที่เราสร้างนะครับ

ซึ่งตามลิงก์โค้ดก็คือการสร้างฟิลธรรมดา แต่ถ้าเราใช้ plugin acf สร้างก็ไม่ต้องเพิ่มโค้ดนะครับ

เห็นเข้าเขียนว่า acf เป็น 3party ด้วย อาจจะรองรับเลยหรือป่าวนะครับ

1

หมายถึง อยากให้ search คำค้นที่เป็น field ใหม่ที่เราสร้างด้วยใช่ไหมครับ

ลองค้นดูมีคนแนะนำให้ใช้ plugin ในการ search นะครับ

เช่น

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

mann-comely หัวข้อเริ่มต้น 04/04/2022 10:07 am

@k ขอบคุณครับ เดี๋ยวไปลองดูครับ

0
หัวข้อเริ่มต้น

ผมใช้ 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>
แบ่งปัน: