2015-10-19 19 views
0

我正在一個WordPress的Web應用程序,並希望有2個不同的頭文件,我可以使用取決於我在網站上的哪一部分。例如,如果未登錄,則顯示自定義標題#1,如果登錄,則顯示自定義標題#2。我想使用functions.php文件將不同的腳本和樣式文件排入每個頭文件。問題是我需要在每個頭文件上調用wp_head(),這意味着它們將加載相同的腳本和文件。任何建議,將不勝感激。wordpress functions.php包含不同的腳本和樣式爲兩個單獨的自定義標題

回答

1

WordPress'get_header()函數可以通過傳遞參數來包含不同的頭模板。示例:

// index.php 
get_header(); // Will include header.php. 

// some-template.php 
get_header('other'); // Will include header-other.php. 

這是在標頭依賴於模板文件時執行此操作的首選方法。如果您需要顯示不同的頁眉用於登錄的用戶,例如,下面是一個快速的解決方案:

if (is_user_logged_in()) : 
    get_header(); // Includes header.php. 
else : 
    get_header('guest'); // Includes header-guest.php. 
endif; 

要排隊不同的腳本和樣式不同的模板和頁面,你可以掛接到wp_enqueue_scripts掛鉤,並確定使用WP條件句什麼來註冊和排隊:

add_action('wp_enqueue_scripts', function() { 
    wp_register_script('script-for-home', $urltoscript, ...); 
    wp_register_script('script-for-page', $urltoscript, ...); 
    wp_register_script('script-for-template', $urltoscript, ...); 

    if (is_home()) { 
     wp_enqueue_script('script-for-home'); 
    } elseif (is_page()) { 
     wp_enqueue_script('script-for-page'); 
    } elseif (is_page_template('template.php')) { 
     wp_enqueue_script('script-for-template'); 
    } 
}); 

wp-admin條件入隊是有點棘手,但考慮wp_get_current_screen檢查當前的管理頁面。

-2
function wpd_enqueue_scripts() { 
    if(is_user_logged_in()){ 
     wp_enqueue_script('script-name', get_template_directory_uri() . '/js/logged-in.js', array(), '1.0.0', true); 
wp_enqueue_style('twentythirteen-bootstrap.min', get_template_directory_uri() . '/css/bootstrap.min.css', array(), 'v3.1.0'); 
    } else { 
     wp_enqueue_script('script-name', get_template_directory_uri() . '/js/not-logged-in.js', array(), '1.0.0', true); 
wp_enqueue_style('twentythirteen-bootstrap.min', get_template_directory_uri() . '/css/bootstrap.min1.css', array(), 'v3.1.0'); 
    } 
} 
add_action('wp_enqueue_scripts', 'wpd_enqueue_scripts'); 
+0

有意詳細說明如何解決問題? – ojrask

相關問題