仅在某些页面上返回函数

时间:2011-01-11 作者:agileapricot

我希望此函数仅在某些页面上返回。我该怎么做?

// Retreats Accordion
function retreats_accordion() { 
 ?>

<!-- accordion root --> 
<div id="accordion"> 
    <?php
        global $post;
        $c = 0;
        $class = \'\';
        $args = array( \'posts_per_page\' => 6, \'post_type\'=> \'slide\', \'slideshow\'=> \'retreats\');
        $myposts = get_posts( $args );
        foreach( $myposts as $post ) :  setup_postdata($post);
        $c++;
        if( $c == 6 ) $class .= \' last\'; ?>
        <a href="<?php echo get_post_meta($post->ID, "slide_url_value", true); ?>">
            <?php the_post_thumbnail(\'quickfinder\'); ?>
        </a>
        <div class="slide<?php echo $class;?>" style="width:200px;">    
            <h4><?php the_title(); ?></h4>
            <?php the_content(); ?>
        </div> 
    <?php endforeach; ?>
</div> 

<script> 
$(function() {

$("#accordion").tabs("#accordion div", {
    tabs: \'img\', 
    effect: \'horizontal\'
});
});
</script> 

<?php 
}

add_action(\'nktframework_abovecontent\', \'retreats_accordion\', 10);
我尝试将此添加到函数中,但似乎不起作用。

if( is_page(107) )
    return;

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

您的代码:

if( is_page(107) )
    return;
检查页面并在匹配时不返回任何内容,实际上这与您想要的完全相反。因此,如果将其反转并将其置于函数的开头:

if( !is_page(107) )
    return;
它在任何地方都不会执行任何操作,但会在第107页继续运行函数的其余部分。

SO网友:Patriek

上面的代码应该可以工作,但这是一种黑客行为,为什么不创建一个包含完整布局和手风琴的页面模板呢。这样,当你创建一个新页面时,你可以很容易地选择它,而不必每次需要时都手动编辑页面id。

http://codex.wordpress.org/Pages 查看“创建自己的页面模板”下的内容

结束

相关推荐