query_posts
是一个PHP函数,而不是javascript函数,它在服务器上执行,结果输出发送到浏览器。当浏览器有机会运行if( $(window).width() < 2000 ) {
瞧,已经太晚了。服务器已完成其PHP脚本,将其发送到其他服务器,并继续处理新的请求。
如果没有变通方法,也无法知道PHP中的客户端屏幕分辨率是什么,因为这些变通方法在第一页加载时不起作用。
但如果您可以在PHP中完成,那么就会出现一些新的难题,例如:
如果屏幕宽度为1000px,而窗口仅为600px,该怎么办如果设备从横向旋转到纵向,并且不再是1000px宽,该怎么办如果具有600px宽屏幕的用户访问您的站点,并且页面被缓存,那么现在所有具有1000px以上屏幕的用户都会获得缓存的600px页面,如果您的站点位于iframe中,该怎么办如果用户调整窗口大小怎么办?(发生的事情比你知道的要多得多,任何时候打开web inspector工具,或者如果平板电脑支持多应用分屏,例如三星手机、安卓平板电脑、Windows 7-10、Windows RT/Surface、iOS 9+)也会发生这种情况。相反,你需要使用CSS和媒体查询来完成这项工作,只需进行一次查询,并为不同的帖子提供不同的类。
我最后的笔记
query_posts
. 如果必须从数据库获取帖子,请不要使用此函数执行查询
WP_Query
, 如果需要更改页面上加载的帖子,请使用
pre_get_posts
筛选时,不要创建全新的查询并丢弃原始查询。
没有有效使用query_posts
核心开发人员在紧张时想到的一些异国情调之外的功能,许多雇主会将其视为WordPress技能低下的迹象。如果继续使用此功能,可能会遇到其他问题,包括分页中断问题