本文整理汇总了PHP中wp_find_hierarchy_loop函数的典型用法代码示例。如果您正苦于以下问题:PHP wp_find_hierarchy_loop函数的具体用法?PHP wp_find_hierarchy_loop怎么用?PHP wp_find_hierarchy_loop使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了wp_find_hierarchy_loop函数的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: wp_check_post_hierarchy_for_loops
/**
* 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.
*
* @since 3.1.0
* @uses wp_find_hierarchy_loop()
*
* @param int $post_parent ID of the parent for the post we're checking.
* @parem int $post_ID ID of the post we're checking.
*
* @return int The new post_parent for the post.
*/
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' => 0));
}
return $post_parent;
}
示例2: wp_check_term_hierarchy_for_loops
/**
* Checks the given subset of the term hierarchy for hierarchy loops.
* Prevents loops from forming and breaks those that it finds.
*
* Attached to the {@see 'wp_update_term_parent'} filter.
*
* @since 3.1.0
*
* @param int $parent `term_id` of the parent for the term we're checking.
* @param int $term_id The term we're checking.
* @param string $taxonomy The taxonomy of the term we're checking.
*
* @return int The new parent for the term.
*/
function wp_check_term_hierarchy_for_loops($parent, $term_id, $taxonomy)
{
// Nothing fancy here - bail
if (!$parent) {
return 0;
}
// Can't be its own parent.
if ($parent == $term_id) {
return 0;
}
// Now look for larger loops.
if (!($loop = wp_find_hierarchy_loop('wp_get_term_taxonomy_parent_id', $term_id, $parent, array($taxonomy)))) {
return $parent;
}
// No loop
// Setting $parent to the given value causes a loop.
if (isset($loop[$term_id])) {
return 0;
}
// There's a loop, but it doesn't contain $term_id. Break the loop.
foreach (array_keys($loop) as $loop_member) {
wp_update_term($loop_member, $taxonomy, array('parent' => 0));
}
return $parent;
}