嘿,我';我试图在一个if语句中加入两个条件。一个是Javascript,一个是PHP

嘿,我';我试图在一个if语句中加入两个条件。一个是Javascript,一个是PHP,javascript,php,jquery,wordpress,Javascript,Php,Jquery,Wordpress,我试图在一个if语句中加入两个条件。其中一个条件必须用javascript/jquery编写,因为我想获得窗口大小。我正在使用WordPress,什么时候是分类页面,当窗口大小小于1024px时,我想显示:无 var screenWidth=jQuery(window).width(); 控制台日志(屏幕宽度); 如果(screenWidth您的方法是正确的,应该执行您想要执行的操作 但是,我认为JS中插入get_sidebar()的那一行是错误的。您正在那里启动PHP并执行get_sideb

我试图在一个if语句中加入两个条件。其中一个条件必须用javascript/jquery编写,因为我想获得窗口大小。我正在使用WordPress,什么时候是分类页面,当窗口大小小于1024px时,我想
显示:无


var screenWidth=jQuery(window).width();
控制台日志(屏幕宽度);

如果(screenWidth您的方法是正确的,应该执行您想要执行的操作

但是,我认为
JS
中插入
get_sidebar()
的那一行是错误的。您正在那里启动
PHP
并执行
get_sidebar
函数。您需要回显该函数的返回值

jQuery(`<?php echo get_sidebar(); ?>`).css('display', 'none');
jQuery(``).css('display','none');

jQuery(``).css('display','none');

您的方法是正确的,应该执行您想要执行的操作

但是,我认为
JS
中插入
get_sidebar()
的那一行是错误的。您正在那里启动
PHP
并执行
get_sidebar
函数。您需要回显该函数的返回值

jQuery(`<?php echo get_sidebar(); ?>`).css('display', 'none');
jQuery(``).css('display','none');

jQuery(``).css('display','none');

您可以使用CSS媒体查询来解决此问题

@media screen and (max-width: 1024px) {
  // apply css for everything under 1024px
}

您可以使用CSS媒体查询来解决此问题

@media screen and (max-width: 1024px) {
  // apply css for everything under 1024px
}

首先使用wp本地化脚本将php值传递给javascript文件。请参见下面的示例。希望您理解下面的代码我在这里做了什么

functions.php
/**
 * Enqueue scripts and styles.
 */
function manami_scripts() {

    wp_enqueue_script( 'manami-script', get_template_directory_uri() . '/assets/js/script.js', array(), '1.0.0', true ); 

    // localize script
    $localization = array(
        'isCat' => is_category()
    );   
    wp_localize_script( 'manami-script', 'myValue', $localization ); 


}
add_action( 'wp_enqueue_scripts', 'manami_scripts' );
然后转到脚本文件并粘贴以下代码

script.js

/**
 * Enqueue scripts and styles.
 */
function manami_scripts() {

    wp_enqueue_script( 'manami-script', get_template_directory_uri() . '/assets/js/script.js', array(), '1.0.0', true ); 

    // localize script
    $localization = array(
        'isCat' => is_category()
    );   
    wp_localize_script( 'manami-script', 'myValue', $localization ); 


}
add_action( 'wp_enqueue_scripts', 'manami_scripts' );
(function($){
    'use strict';

     var screenWidth = jQuery(window).width();
     console.log(screenWidth);
     console.log(myValue.isCat);

    if(myValue.isCat){  // when value is true
        if(screenWidth <= 1024){
            jQuery('#sidebar_wrap').css('display', 'none');
        }
    }

})(jQuery);
(函数($){
"严格使用",;
var screenWidth=jQuery(window).width();
控制台日志(屏幕宽度);
log(myValue.isCat);
if(myValue.isCat){//when value为true

if(screenWidth首先使用wp本地化脚本将php值传递给javascript文件。参见下面的示例。希望您理解下面的代码我在这里做了什么

functions.php
/**
 * Enqueue scripts and styles.
 */
function manami_scripts() {

    wp_enqueue_script( 'manami-script', get_template_directory_uri() . '/assets/js/script.js', array(), '1.0.0', true ); 

    // localize script
    $localization = array(
        'isCat' => is_category()
    );   
    wp_localize_script( 'manami-script', 'myValue', $localization ); 


}
add_action( 'wp_enqueue_scripts', 'manami_scripts' );
然后转到脚本文件并粘贴以下代码

script.js

/**
 * Enqueue scripts and styles.
 */
function manami_scripts() {

    wp_enqueue_script( 'manami-script', get_template_directory_uri() . '/assets/js/script.js', array(), '1.0.0', true ); 

    // localize script
    $localization = array(
        'isCat' => is_category()
    );   
    wp_localize_script( 'manami-script', 'myValue', $localization ); 


}
add_action( 'wp_enqueue_scripts', 'manami_scripts' );
(function($){
    'use strict';

     var screenWidth = jQuery(window).width();
     console.log(screenWidth);
     console.log(myValue.isCat);

    if(myValue.isCat){  // when value is true
        if(screenWidth <= 1024){
            jQuery('#sidebar_wrap').css('display', 'none');
        }
    }

})(jQuery);
(函数($){
"严格使用",;
var screenWidth=jQuery(window).width();
控制台日志(屏幕宽度);
log(myValue.isCat);
if(myValue.isCat){//when value为true

如果(屏幕宽度我这样做,它工作得很好

<?php get_sidebar() ?>
            <script>
                function setSideBar() {
                    var screenWidth = jQuery(window).width();
                    if(screenWidth <= 1024){
                        jQuery('#widget').css('display', 'none');
                        console.log(jQuery('#widget'));
                    } else {
                        jQuery('#widget').css('display', 'block');
                    }
                }

                setSideBar();

                jQuery(document).ready(function () {
                        console.log('test')
                        window.addEventListener("resize", setSideBar, false);
                });


            </script>

函数setSideBar(){
var screenWidth=jQuery(window).width();

如果(屏幕宽度我这样做,它工作得很好

<?php get_sidebar() ?>
            <script>
                function setSideBar() {
                    var screenWidth = jQuery(window).width();
                    if(screenWidth <= 1024){
                        jQuery('#widget').css('display', 'none');
                        console.log(jQuery('#widget'));
                    } else {
                        jQuery('#widget').css('display', 'block');
                    }
                }

                setSideBar();

                jQuery(document).ready(function () {
                        console.log('test')
                        window.addEventListener("resize", setSideBar, false);
                });


            </script>

函数setSideBar(){
var screenWidth=jQuery(window).width();

if(screenWidth)在CSS中听到媒体查询词了吗?这个解决方案有什么问题?在CSS中不能说if(is_category()){}…如我所写。我需要2个条件..没有一个我可以在控制台中看到侧边栏的全部内容…但是当屏幕大于1024px时,侧边栏仍然不显示。你听过CSS中的媒体查询词吗?这个解决方案有什么不起作用?你不能在CSS中说如果(is_category()){}…如我所写。我需要2个条件..没有一个我可以在控制台中看到侧边栏的全部内容…但是当屏幕大于1024px时,侧边栏仍然不显示,如何在这里检查PHP中的is_category?@davidev您不需要检查它是否为is_category,您可以将css应用到category页面template@devidev,Jiankai Zheng是对的,您可以在if条件后粘贴代码,不需要加载js和所有内容。在这里如何检查PHP中的is_category?@davidev您不需要检查它是否是is_category,您可以将css应用到category页面template@devidev,Jiankai Zheng是对的,如果不需要加载js an,您可以在条件满足后粘贴代码恭喜,但在WordPress中,在php文件中编写js代码不是一个好的做法。这就是为什么有一个名为wp_localize_script的函数将php值传递给js文件的原因。:)恭喜,但在WordPress中,在php文件中编写js代码不是一个好的做法。这就是为什么有一个名为wp_localize_script的函数将php值传递给js文件的原因。:)