ฟิลด์ที่กำหนดเองขั้นสูงของ Wordpress ภายในคำสั่ง if

ฉันกำลังพยายามใช้ ACF เพื่อส่งออกจำนวนเงินเดือนที่แตกต่างกันสำหรับกระดานรายชื่องาน

E.g:

เลือกตัวเลือกช่องใน ACF สำหรับประเภทเงินเดือน ("แข่งขัน" ต่อวัน ต่อปี ฯลฯ) ดูเหมือนว่านี้:

ป้อนคำอธิบายรูปภาพที่นี่

จากนั้นฉันก็มีฟิลด์แบบมีเงื่อนไข ดังนั้น หากเลือก "P.A" ก็จะแสดงฟิลด์ P.A:

ป้อนคำอธิบายรูปภาพที่นี่

ฉันมีฟิลด์ตามเงื่อนไขมากมายสำหรับตัวเลือกกล่องเลือกต่างๆ

คำถามของฉันคือ:

ฉันจะเพิ่มสิ่งเหล่านี้ลงในคำสั่ง if เพื่อให้ฟิลด์ที่ถูกต้องแสดงตามเนื้อหาที่ให้มาได้อย่างไร

E.g

if job_salary was selected as "competitive" =
   echo "competitive"
 else if job_salary was selected as "p.a" =
   echo job_salary_singular
 else if job_salary was selected as "p.a range" =
   echo job_range_start " to " job_range_end

หวังว่านี่จะสมเหตุสมผล นี่คือรหัสที่ฉันมีในขณะนี้ ซึ่งจะแสดงประเภทของเงินเดือนที่ป้อน (เช่น การแข่งขัน, P.A, ช่วงต่อวัน) เป็นข้อความ


person Francesca    schedule 27.07.2014    source แหล่งที่มา
comment
เพื่อชี้แจงให้กระจ่าง... คุณมีตัวเลือกระดับบนสุดห้าตัวเลือก (สิ่งที่ฉันจะเรียกว่า) ในช่อง job_salary_singular แต่ละตัวเลือกเหล่านั้น อาจหรือไม่ก็ได้ ซ่อนหรือแสดงช่องตามเงื่อนไขเพิ่มเติม และท้ายที่สุด คุณจำเป็นต้องรู้วิธีส่งออก ฟิลด์แบบมีเงื่อนไข ที่เหมาะสมด้วยค่าฟิลด์ระดับบนสุดที่สอดคล้องกันในโพสต์ (ส่วนหน้าของธีม)   -  person Jared Cobb    schedule 27.07.2014


คำตอบ (1)


แนวทางนี้ควรจะได้ผล ในตัวอย่างของฉัน ฟิลด์ตัวเลือกหลักที่คุณเลือกว่าเป็นการจ่ายต่อปี อัตราการแข่งขัน ช่วง ฯลฯ เรียกว่า salary_type

ถ้าอย่างนั้นฉันก็มี per_annum การปรากฏเป็นไปตามเงื่อนไขในการเลือก 'ต่อปี' จาก salary_type และสุดท้าย per_annum_range_low และ per_annum_range_high ซึ่งทั้งสองอย่างนี้มีเงื่อนไขในการเลือก 'ช่วงต่อปี'

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

พีเอชพี

    <?php

    if (get_field('salary_type')) { //first we check if the salary_type field exists.

        $selection = get_field('salary_type'); //then we store its value as '$selection'

        if ($selection === 'comp') { //we check which selection was made by looking at its label.
            echo '<p>' . 'Competitive' . '</p>';

        } else if ($selection === 'perannum') { //ACF allows you to store a selection as both a value (in this case, 'perannum') and a label ('Per Annum', which is what the user sees.)
            echo '<p>' . get_field('per_annum') . ' per year</p>';

        } else if ($selection === 'perannumrange') {
            echo '<p>From ' . get_field('per_annum_range_low') . ' to ' . get_field('per_annum_range_high') . ' per year</p>'; //and then echo its output and any HTML markup you want.

        } else {
            echo '<p>No Salary Info Given.</p>'; //if they don't make a selection
        }
    }

    ?>
person The Spirit of Gordon Bombay    schedule 28.07.2014