วิธีจัดคิวสคริปต์ในหน้าเพิ่ม / แก้ไขหน้าโพสต์ที่กำหนดเองได้อย่างไร


23

ฉันพยายามจัดคิวสคริปต์ JS เฉพาะเมื่อมีคนเพิ่มหรือแก้ไขประเภทโพสต์ที่ฉันกำหนดเองซึ่งเรียกว่า "สูตรอาหาร" ขณะนี้สคริปต์ใช้งานได้เมื่อฉันทำสิ่งนี้:

if (is_admin()){
    wp_enqueue_script( 'my-script' );
}

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

ขอบคุณล่วงหน้า!


สำหรับการใช้ในอนาคตคำถามที่คล้ายกันได้รับคำตอบกับสิ่งที่ฉันรู้สึกว่าเป็นวิธีที่ง่ายกว่า: wordpress.stackexchange.com/q/34894/93169
Frits

คำตอบ:


43

คุณสามารถทำได้เช่นนี้ (ใส่ในของคุณfunctions.php):

function add_admin_scripts( $hook ) {

    global $post;

    if ( $hook == 'post-new.php' || $hook == 'post.php' ) {
        if ( 'recipes' === $post->post_type ) {     
            wp_enqueue_script(  'myscript', get_stylesheet_directory_uri().'/js/myscript.js' );
        }
    }
}
add_action( 'admin_enqueue_scripts', 'add_admin_scripts', 10, 1 );

ฉันสามารถจัดคิวด้วยการใช้ฟังก์ชั่นนี้ได้หรือไม่?
Sisir

1
@Sisir ใช้"admin_print_styles-{$page}"เบ็ด $pageสามารถถือที่สมบูรณ์รหัสและนำมาใช้เพื่อกำหนดเป้าหมายแล้วหน้าเมื่อใช้add_(sub)menu_page() @see wp_enqueue_style()
ไกเซอร์

วิธีการที่ทันสมัยมากขึ้นในการทำเช่นนี้: wordpress.stackexchange.com/a/34897/93169 (ยังเกิดขึ้นได้ง่ายขึ้นเล็กน้อยขอบคุณการเปลี่ยนแปลงการทำงานใน wordpress ... )
Frits

-2

มีตะขอสำหรับสิ่งนั้นและมันใช้ง่ายมาก ดูการกวดวิชานี้สำหรับการใช้ตัวอย่าง

แก้ไข

Justin ย้ายบทเรียนของเขาจาก DevPress ไปยังเว็บไซต์ส่วนตัวของเขา นี่คือการเชื่อมโยงการอัพเดตสำหรับการกวดวิชา


หน้าที่ระบุไว้หายไป นี่เป็นกระจก / เก็บบนเครื่อง Wayback
Robert K

ขอบคุณสำหรับสิ่งนั้น ฉันได้อัปเดตคำตอบของฉันด้วยลิงก์ปัจจุบัน
Chip Bennett

3
ทำไมไม่โพสต์วิธีแก้ปัญหาที่นี่และเชื่อมโยงการสอนเป็นแหล่ง ...
Christine Cooper

-3

Rootstheme (ซึ่งจะขึ้นอยู่กับเงินทุน Twitter) มีวิธีที่สง่างามจริงๆของสคริปต์โหลดขึ้นอยู่กับหน้า / โพสต์ชนิดที่เห็นในroots_scriptsฟังก์ชั่นที่สามารถมองเห็นที่นี่ใน GitHub

ลงทะเบียนสคริปต์และสไตล์ทั้งหมดของคุณโดยทั่วไปแล้วจะมีข้อความสั่งแบบมีเงื่อนไขซึ่งล้อมรอบคำสั่งwp_enqueue_scriptหรือwp_enqueue_style ของคุณ

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