我目前正在一個Wordpress網站上工作。在導航欄中有包含各種子菜單的「more」菜單。如果視口等於或大於768px,我希望這個「更多」消失,而是顯示其他子菜單。WordPress的:我希望我的PHP行爲有所不同取決於視口的寬度
這是負責的functions.php「更多」按鈕的代碼塊:
$more_button_options = apply_filters('monstroid2_theme_more_button_options', array(
'more_button_type' => get_theme_mod('more_button_type', monstroid2_theme()->customizer->get_default('more_button_type')),
'more_button_text' => get_theme_mod('more_button_text', monstroid2_theme()->customizer->get_default('more_button_text')),
'more_button_icon' => get_theme_mod('more_button_icon', monstroid2_theme()->customizer->get_default('more_button_icon')),
'more_button_image_url' => get_theme_mod('more_button_image_url', monstroid2_theme()->customizer->get_default('more_button_image_url')),
'retina_more_button_image_url' => get_theme_mod('retina_more_button_image_url', monstroid2_theme()->customizer->get_default('retina_more_button_image_url')),
));
wp_localize_script('monstroid2-theme-script', 'monstroid2', apply_filters(
'monstroid2_theme_script_variables',
array(
'ajaxurl' => esc_url(admin_url('admin-ajax.php')),
'labels' => $labels,
'more_button_options' => $more_button_options,
)));
到目前爲止,我的解決辦法是簡單地刪除這個塊,但它創造了另一個問題,因爲漢堡圖標(顯示在768px以下)不再可點擊,弄亂了我的整個導航欄。
根據視口的寬度,我想到了functions.php中一個簡單的IF/ELSE聲明。但是PHP是一種基於服務器的語言。我知道如何用Javascript檢測寬度,但我無法弄清楚如何將這些信息發送到PHP。我已經搜索,但沒有找到解決方案。
誰能幫助?
這是沒有什麼PHP可以幫助你。你需要讓JS和CSS來完成這項工作。 (也就是說,你可以從第二個請求中獲取數據,方法是將它放在客戶端的cookie中,但不能用於第一個請求。) – Boldewyn
不可以,這是一個wordpress。如果我寫一個CSS的functions.php仍然會有優先權(已經嘗試;)) –
嗯,什麼?對不起,我不知道你最後的評論意味着什麼。 – Boldewyn