检查当前post是否在范围内,如果我们。。。
循环中在设定范围内斗杆all 函数中的函数。php文件。
function wpse52285_is_post_in_range( $post, int $range_from, int $range_to )
{
// If we\'re IN the LOOP @link http://codex.wordpress.org/Function_Reference/in_the_loop
if ( ! in_the_loop() )
return false;
// Abort if not in the allowed range
if ( ! in_array( $post->ID, range( $range_from, $range_to ) ) )
return false;
return true;
}
检查我们是否有孩子在范围内。。。
是否在回路内
获得了所需帖子类型的子项(可以是任何自定义帖子类型、帖子、页面、附件、链接等)。子项是否在范围内如果没有找到任何东西,我们将返回false
, 这样我们可以更容易地检查。function wpse52285_get_children_in_range( $post, int $range_from, int $range_to, $post_type = \'post\' )
{
if ( ! in_the_loop() )
return false;
// get_children() @link http://codex.wordpress.org/Function_Reference/get_children
$children = get_children( "post_parent={$post->ID}&post_type={$post_type}" );
if ( 0 < count( $children ) )
{
foreach ( $children as $child )
{
in_array( $id, range( $range_from, $range_to ) ) AND $in_range[] = $child;
}
if ( 0 < count( $in_range ) )
return $in_range;
}
return false;
}
检查我们是否有祖先。。。我们在循环中我们有祖先了祖先在范围内如果什么都不符合,我们会再次返回false
.
function wpse52285_get_ancestors_in_range( $post, int $range_from, int $range_to )
{
if ( ! in_the_loop() )
return false;
// get_post_ancestors @link http://codex.wordpress.org/Function_Reference/get_post_ancestors
$ancestors = get_post_ancestors( $post->ID );
foreach ( $ancestors as $ancestor )
{
in_array( $ancestor->ID, range( $range_from, $range_to ) ) AND $in_range[] = $ancestor;
}
if ( 0 < count( $in_range ) )
return $in_range;
return false;
}
现在,我们可以在以下任何模板中使用它:// The loop
if have_posts() : while( have_posts() ): the_post();
global $post;
// Is our current post in range?
if ( wpse52285_is_post_in_range( $post, 2, 95 ) )
{
// Are any child posts in range?
$children = wpse52285_get_children_in_range( $post, 3, 19 );
if ( $children )
{
// Do stuff with the children
}
// Are any ancestors in range?
$ancestors = wpse52285_get_ancestors_in_range( $post, 1, 31 );
if ( $ancestors )
{
// Do stuff with the ancestors
}
}
endwhile;
endif;