排除在特定页面上运行的函数

时间:2012-12-16 作者:Pat

我正在修改键盘快捷键导航插件以适应我的网站。以下是插件:http://wordpress.org/extend/plugins/easy-keyboard-shortcut-navigation/

我不想让这个插件在2020页上运行。我试过了&& !is_page(\'2020\')|| !is_page(\'2020\')elseif 但它会继续运行该函数。

有什么想法吗?

Edit update: 根据要求,我正在删除代码片段,并包含位于上述URL的插件的完整代码。

add_action(\'wp_footer\',\'keyboard_shortcut_navigation\');
function keyboard_shortcut_navigation(){
    global $paged, $wp_query;
    if ( !$max_page )
        $max_page = $wp_query->max_num_pages;
    if ( !$paged )
        $paged = 1;
    $nextpage = intval($paged) + 1;
?>
<?php if( is_single() ) : ?>
<script type="text/javascript">
    document.onkeydown = chang_page;function chang_page(e) {
    var e = e || event,
    keycode = e.which || e.keyCode;
    var obj = e.target || e.srcElement;
    if(obj.tagName.toLowerCase()=="textarea"){return;}
    if(obj.tagName.toLowerCase()=="input"){return;}
    if (keycode == 33 || keycode == 37) location = \'<?php echo get_permalink(get_adjacent_post(false,\'\',false)); ?>\';
    if (keycode == 34 || keycode == 39) location = \'<?php echo get_permalink(get_adjacent_post(false,\'\',true)); ?>\';
    }
</script>
<?php elseif( is_home() || is_category() ) : ?>
<script type="text/javascript">
    document.onkeydown = chang_page;function chang_page(e) {
        var e = e || event,
        keycode = e.which || e.keyCode;
        var obj = e.target || e.srcElement;
        if(obj.tagName.toLowerCase()=="textarea"){return;}
        if(obj.tagName.toLowerCase()=="input"){return;}
        if (keycode == 33 || keycode == 37) location = \'<?php echo get_previous_posts_page_link(); ?>\';
        if (keycode == 34 || keycode == 39) 
        <?php if ( $nextpage <= $max_page ) : ?>
            location = \'<?php echo get_next_posts_page_link(); ?>\';
        <?php else : ?>
            location = \'<?php echo get_pagenum_link( $max_page ); ?>\';  
        <?php endif; ?>
    }
</script>
<?php endif; ?>
<?php
}

1 个回复
最合适的回答,由SO网友:s_ha_dum 整理而成

这适用于ID为675的“我的网站”上的页面:

function tst($content) {
  if (is_page(675)) print(\'howdy\');
}
add_action(\'wp_footer\',\'tst\');
我只会在顶部中断函数。

function keyboard_shortcut_navigation(){
    global $paged, $wp_query;
    if (is_page(2020)) return; // for a post with ID 2020
    if (is_page(\'2020\')) return; // for a post with slug or title "2020"
    // you should only need one of those
    // ... the rest
如果你说的是帖子而不是页面,那么你可能想要的是:

// old
<?php if( is_single() ) : ?>
// new
<?php if( is_single() && !is_single(2020)) : ?>
// use quotes if 2020 is the title or the slug
您正在入侵其他人的插件,因此在更新时可能会遇到问题。我会联系作者,并要求在下一个版本中提供一个钩子,允许您在不进行任何黑客攻击的情况下完成此操作。

结束

相关推荐

Wassup中显示的ODD/wp-admin/admin-ajax.php条目

我有一个奇怪的问题,我不知道如何解决。自从我安装了一个流行的帖子插件(Wordpress popular Posts)以来,我一直在Wassup实时分析中看到一个奇怪的条目,该页面名为/wp admin/admin ajax。php一次又一次。在我安装插件之前,它会显示被点击的页面,但无论出于何种原因,该页面看起来都会被点击,我无法看到用户实际点击的页面。下面是我所说的一个例子:编辑:How do I get the correct page/post to be displayed instead of