我的网站运行正常,但我想根据我的新要求略微更改我的if else条件。
现在我认为这不是关于wordpress
,而是关于如何改变一些PHP conditional tags
。
所以我在这里问。
我以前的要求是:
我按下以下按钮:
<div class="cr-athavan-lang-image">
<a href="?site=mobile" class="mobile_site" id="mobile_site"><img src="file/path/to/img" alt="switch to mobile site"></a>
<a href="?site=desktop" class="desktop_site"><img src="file/path/to/img" alt="switch to desktop site"></a>
</div>
style.css
.desktop_site { display: none; } /* Hiding switch to desktop site button if the site is loaded on desktop */
responsive.css
.desktop_site { display: block; margin-top: 5px; } /* bring back switch to desktop site button if the site is loaded on mobile */
我的functions.php
<?php
if ( !wp_is_mobile() ) { // to hide mobile switching button on desktop site
function print_inline_script_hide_site_switch() {
?>
<script type="text/javascript">
jQuery('.mobile_site').hide();
</script>
<?php
}
add_action( 'wp_footer', 'print_inline_script_hide_site_switch' );
}
else {
add_action('init', 'is_it_mobile_or_desktop', 1);
function is_it_mobile_or_desktop(){
if (isset($_GET['site']) && in_array($_GET['site'], array('mobile', 'desktop'))){
setcookie( 'site', $_GET['site'], time() + 3600, COOKIEPATH, COOKIE_DOMAIN);
}
}
add_action('init', 'who_am_i', 2);
function who_am_i(){
$site = isset($_GET['site']) && in_array($_GET['site'], array('mobile', 'desktop')) ? $_GET['site'] :
(isset($_COOKIE['site']) && in_array($_COOKIE['site'], array('mobile', 'desktop')) ? $_COOKIE['site'] : 'default_css');
if ($site == 'mobile'){
function responsive_css(){
wp_enqueue_style(
'wpa_custom',
get_template_directory_uri() . '/css/responsive.css'
);
}
add_action( 'wp_enqueue_scripts', 'responsive_css', 999 );
function print_my_inline_script() {
?>
<script type="text/javascript">
/*My inline scripts*/
</script>
<?php
}
add_action( 'wp_footer', 'print_my_inline_script' );
}
else {
function default_css(){
wp_enqueue_style(
'default_css',
get_template_directory_uri() . '/style.css'
);
}
add_action( 'wp_enqueue_scripts', 'default_css', 999 );
}
}
}
?>
这就是我实现旧要求并正常工作的方式。第1和第1期没有任何问题第二项要求
现在我已经更新了要求:
总结:
如果网站已在移动设备上加载,则应将样式表排入队列
style.css
并应显示button desktop_site
如果用户点击button desktop_site
,那么它应该排队
responsive.css
并应显示button mobile_site
如果用户再次点击mobile_site button
,它应该排队
style.css
并应显示button desktop_site
我认为它几乎只是if else condition changes
但我无法解决。
请提出建议和解决方案....
答案 0 :(得分:1)
我认为这个问题与你的一个wordpress交换问题有关:wordpress.stackexchange.com/questions/193813/how-to-switch-css-files-according-to-devices-and-button-click/ < / p>
是的,因为您认为解决方案在if
声明中:
更改
if (($site == 'desktop'){ // code line }
要
if (($site == 'desktop') && (wp_is_mobile())) { // code line }