วิธีจัดคิวสไตล์ให้กับหน้าเว็บบางหน้าแบบมีเงื่อนไขเท่านั้น


11

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

สิ่งเหล่านี้ยอดเยี่ยม แต่พวกมันก้าวหน้ากว่าสิ่งที่ฉันต้องการ

ฉันรู้สึกว่าคำตอบคือการใช้is_page()ฟังก์ชั่นในตัว( codex ) แต่เมื่อฉันพยายามที่จะใช้มันเป็นตัวแบ่งไซต์หรือไม่ทำงาน

ฉันคิดว่าฉันกำลังดำเนินการตามตรรกะตามเงื่อนไขในจุดที่ผิด

นี่คือสิ่งที่ฉันได้ลองเพิ่มในฟังก์ชั่นของฉัน php:

function wpse39130_register_more_stylesheets() {
    wp_register_style( 'stylesheet_name', get_stylesheet_directory_uri() . '/stylesheet.css' );
}
add_action( 'init', 'wpse39130_register_more_stylesheets' );

function wpse39130_conditionally_enqueue_my_stylesheet() {
    // only enqueue on product-services page slug
    if ( is_page( 'products-services' ) ) {
        wp_enqueue_style( 'stylesheet_name' );
    }
}
add_action( 'wp_enqueue_scripts', 'wpse39130_conditionally_enqueue_my_stylesheet' );

เมื่อฉันลบส่วนที่มีเงื่อนไขของมันออกสไตล์ชีทจะถูกจัดคิวเรียบร้อยแล้วดังนั้นฉันจึงรู้ว่าใช้งานได้


จริงๆแล้วฉันยังใช้การคัดลอกและวางรหัสของคุณและงานที่แข็งแกร่ง
abhishek abhi Abhi

คำตอบ:


4

ฉันคัดลอกโค้ดของคุณไปไว้ในสภาพแวดล้อมการพัฒนาของฉันไม่มีอะไรเปลี่ยนแปลงนอกจากชื่อเพจและใช้งานได้ดี คุณแน่ใจหรือว่าไม่ได้ถูกจัดคิวและคุณเพิ่งชี้ไปผิดหรือหน้านั้นไม่มีชื่อไม่ถูกต้องหรือบางอย่าง


1
ขอบคุณมันใช้งานได้! ฉันไม่รู้ว่าทำไมมันไม่ทำงานมาก่อน สิ่งที่เกิดขึ้นกับคนแปลกหน้าฉันเดา หวังว่านี่จะเป็นประโยชน์กับคนอื่น
Evan Mattson

2

สิ่งที่คุณมีอยู่ถูกต้อง - คุณแค่เชื่อมโยงกับการกระทำที่ผิด ลองใช้การกระทำ "wp" แทน "init" เมื่อเริ่มต้นทำงาน is_page () จะทำงานไม่ถูกต้อง

แก้ไข: ฉันผิด ฉันคิดว่าคุณมี add_my_stylesheet ติดยาเสพติดเพื่อเริ่มต้น แต่คุณทำไม่ได้ is_page ควรทำงานจากการกระทำ enqueue_scripts ขออภัย ... ดำเนินการต่อ ...


-1

ฉันพยายามติดตามรหัสเดียวกันและดูว่าฉันจะได้ผลลัพธ์เดียวกันสิ่งที่ฉันสังเกตเห็นคือ is_page () ไม่ทำงานตามที่คาดไว้ ดังนั้นฉันจึงติดตามตัวแปรทั่วโลก $ post และตรวจสอบชื่อหมวดหมู่ / กระสุนและใช้ข้อความอย่างง่ายเปรียบเทียบหลังการตัดสินใจ

    global $post;
    $postcat = get_the_category( $post->ID );
if ( ! empty( $postcat ) ) {
 echo esc_html( $postcat[0]->ID );   // Debug 
 echo esc_html( $postcat[1]->name ); // Debug 
 echo var_dump($postcat ); // Debug 
}

ค่าของหมวดหมู่หากเป็นเพียงหนึ่งหมวดหมู่ (ไม่ใช่หมวดหมู่ย่อย) จะเป็น

echo esc_html( $postcat[0]->name ); //Display name on screen

สำหรับหมวดหมู่ย่อยคุณจะต้องกรอกข้อมูลตัวแปรต่อไปนี้

echo esc_html( $postcat[1]->name ); //Display name on screen

ตอนนี้ขึ้นอยู่กับความต้องการของคุณใช้รหัสด้านล่างเช่นฉันใช้เพื่อตรวจสอบชื่อหมวดหมู่ย่อย:

//Use $postcat[0]->name for parent category name Can be your sub category name 
        if ( $postcat[1]->name == 'Shopping' ) { 

                wp_enqueue_style( 'stylesheet_name' );
            }else{
        // other code 
        }

รหัสเต็ม:

        function wpse39130_register_more_stylesheets() {
        wp_register_style( 'stylesheet_name', get_stylesheet_directory_uri() . '/whatsqshop.css' );
    }
    add_action( 'init', 'wpse39130_register_more_stylesheets' );

    function wpse39130_conditionally_enqueue_my_stylesheet() {
        // only enqueue on product-services page slug
    global $post; //GLobal Post variable 
    $postcat = get_the_category( $post->ID ); // Get the Category info from POST ID

    if ( ! empty( $postcat ) ) { // IF POST CATEGORY IS NOT EMPTY
    //    echo esc_html( $postcat[0]->slug );   //Display SLUG On output screen <Debug option>
  //echo esc_html( $postcat[0]->name ); //Display name on screen
     //echo esc_html( $postcat[1]->name ); //Display name on screen

    //echo var_dump($postcat ); // For debug 
    }
    //  if( is_single(88)) {
       if ( $postcat[1]->name == 'Shopping' ) {
            wp_enqueue_style( 'stylesheet_name' );
        }else{
    //wp_enqueue_style( 'stylesheet_name' );
    }

    }
    add_action( 'wp_enqueue_scripts', 'wpse39130_conditionally_enqueue_my_stylesheet' );

ตัวอย่าง: * ไม่มี CSS พิเศษ http://whatsq.com/category/gst16/

* CSS พิเศษพร้อมประวัติความเป็นมาจากหมวดสินค้าดังกล่าวข้างต้นเท่านั้น http://whatsq.com/information-technology/shopping-information-technology/mothers-day-gift-plan-show-mom-the-love-with-flowers-and- และอื่น ๆ/


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