我正在为wordpress网站使用WP-Alert插件。问题是它显示在所有页面上,即使它仅设置为主页上的显示。 (is_home)。但是,我的主页是一个静态主页,因此我将其设置为is_front_page,并且仍显示在所有页面上。如果你错过任何事情我可以告诉我吗?
function wp_alert_add_sticky_alert(){
if(get_option('alert_show_on_site') == 'yes'){
$display = true;
$homeOption = get_option('alert_show_on_home');
$pageOption = get_option('alert_show_on_page');
$postOption = get_option('alert_show_on_post');
$getID = get_the_ID();
if($homeOption == 'yes' && is_home ()){
$display = true ;
}elseif($pageOption == 'yes' && is_page()){
$display = true ;
}elseif($postOption == 'yes' && is_single()){
$display = true ;
}else{
$display = false ;
}
if($display){
?>
<div class="sticky-box">
<div class="sticky-inner"><?php echo stripslashes(get_option('wp_alert_message')); ?>
</div>
</div>
<?php
}
}
}
?>
我将此行添加到上面的代码中,但它仍然不会仅显示在静态主页上。 } elseif($ homeOption =='yes'&amp;&amp; is_front_page()){ $ display = true; }
先谢谢你们:)
答案 0 :(得分:1)
现在显示在您的静态主页上吗?
试试这个
function wp_alert_add_sticky_alert(){
if(get_option('alert_show_on_site') == 'yes'){
$homeOption = get_option('alert_show_on_home');
$getID = get_the_ID();
if($homeOption == 'yes' && is_home ()){
?>
<div class="sticky-box">
<div class="sticky-inner"><?php echo stripslashes(get_option('wp_alert_message')); ?>
</div>
</div>
<?php
}
}
}
?>
希望这适合你
答案 1 :(得分:0)
WordPress在使用当前页面设置functions.php
对象之前加载$wp_query
。 is_front_page
是$wp_query->is_front_page()
周围的包装器,如果查询尚未设置,则始终返回false。
有关该主题的更多信息,请参阅此问题:https://wordpress.stackexchange.com/questions/41805/is-front-page-only-works-in-theme-file-and-does-not-work-in-functions-php
要在functions.php
中使用它,您必须将其包装在实例化$ wp_query对象之后的操作中。
add_action('wp', function () {
if (!is_front_page()) {
add_action('wp_print_styles', function () {
wp_deregister_style('wpos-slick-style');
wp_deregister_style('wpsisac-public-style');
}, 100);
}
});