Switch language

wpseek.com
A WordPress-centric search engine for devs and theme authors




wp_check_post_hierarchy_for_loops [ WordPress Function ]

wp_check_post_hierarchy_for_loops ( $post_parent, $post_ID )
Parameters:
  • (int) $post_parent ID of the parent for the post we're checking.
  • (int) $post_ID ID of the post we're checking.
Uses:
Returns:
  • (int) The new post_parent for the post.
Defined at:



Checks the given subset of the post hierarchy for hierarchy loops.

Prevents loops from forming and breaks those that it finds.

Attached to the wp_insert_post_parent filter.

Source


<?php
function wp_check_post_hierarchy_for_loops$post_parent$post_ID ) {
    
// Nothing fancy here - bail
    
if ( !$post_parent )
        return 
0;

    
// New post can't cause a loop
    
if ( empty( $post_ID ) )
        return 
$post_parent;

    
// Can't be its own parent
    
if ( $post_parent == $post_ID )
        return 
0;

    
// Now look for larger loops

    
if ( !$loop wp_find_hierarchy_loop'wp_get_post_parent_id'$post_ID$post_parent ) )
        return 
$post_parent// No loop

    // Setting $post_parent to the given value causes a loop
    
if ( isset( $loop[$post_ID] ) )
        return 
0;

    
// There's a loop, but it doesn't contain $post_ID. Break the loop.
    
foreach ( array_keys$loop ) as $loop_member )
        
wp_update_post( array( 'ID' => $loop_member'post_parent' => ) );

    return 
$post_parent;
}
?>

Examples [ wp-snippets.com ]

Top Google zoekresultaten

Meer ...

Gebruikersdiscussies [ wordpress.org ]

0 User Note(s)

Nog geen één. Wees de eerste!

Nieuw toevoegen ...



HTML5 Powered with CSS3 / Styling, Performance & Integration, and Semantics