簡體   English   中英

僅當用戶未登錄時,WordPress才會執行javascript文件

[英]Wordpress execute javascript file only if user is not logged in

僅當用戶未登錄時,我才嘗試在wordpress中執行javascript文件,但是我看不到為什么它不起作用。 這是我正在使用的代碼:

<?php
if ( is_user_logged_in() ) {
echo 'Ok!';
} else {
wp_enqueue_script(
'ads'
);
}
?>

這就是我在functions.php中注冊文件的內容:

wp_register_script(
'ads',
get_bloginfo('template_directory') . '/js/ads.js'
);

有任何想法嗎? 提前致謝!

wp_enqueue_script()應該在wp_enqueue_scripts鈎子上運行。 這也應該封裝在一個函數中,或者至少封裝在一個閉包/匿名函數中

旁注,您現在想開始正確設置格式/縮進代碼- 以后,謝謝您!

is_user_logged_in() 您正在檢查用戶是否“登錄”。您可以使用“非”邏輯運算符確保is_user_logged_in()返回false !

B.您不需要注冊腳本,因為wp_enqueue_script會為您注冊。 實際上,只有在頁面上的短代碼處於活動狀態時,才需要像加載腳本一樣更加花哨的時間來注冊腳本。

C.通常,您需要為腳本/樣式句柄加上前綴,因為它們應該是唯一的 ,否則可能會發生沖突。

D.通常,你會希望使用get_template_directory_uri()get_stylesheet_directory_uri()get_bloginfo()因為get_bloginfo( $directory_type )是真的只是為這些功能的包裝

這樣的事情會讓您入門:

add_action( 'wp_enqueue_scripts', 'load_ads_script' );
function load_ads_script(){
    if( !is_user_logged_in() ){
        // The "!" makes sure the user is _not_ logged in.
        wp_enqueue_script( 'jacob-k-ads', get_stylesheet_directory_uri().'/js/ads.js' );
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM