Source View: wp_unique_post_slug_is_bad_hierarchical_slug

To save our bandwidth, we show only a snippet of code around each occurence of the hook. View complete file in SVN (without highlighting).

Understanding Source Code

The best way to understand what a hook does is to look at where it occurs in the source code.

  • Action hooks look like this: do_action( "hook_name" )
  • Filter hooks look like this: apply_filters( "hook_name", "what_to_filter" ).

Remember, this hook may occur in more than one file. Moreover, the hook's context may change from version to version.

Source View

Line Code
3737            * Filter whether the post slug would make a bad hierarchical post slug.
3738            *
3739            * @since 3.1.0
3740            *
3741            * @param bool   $bad_slug    Whether the post slug would be bad in a hierarchical post context.
3742            * @param string $slug        The post slug.
3743            * @param string $post_type   Post type.
3744            * @param int    $post_parent Post parent ID.
3745            */
3746           if ( $post_name_check || in_array( $slug, $feeds ) || 'embed' === $slug || preg_match( "@^($wp_rewrite->pagination_base)?\d+$@", $slug )  || apply_filters( 'wp_unique_post_slug_is_bad_hierarchical_slug', false, $slug, $post_type, $post_parent ) ) {
3747                $suffix = 2;
3748                do {
3749                     $alt_post_name = _truncate_post_slug( $slug, 200 - ( strlen( $suffix ) + 1 ) ) . "-$suffix";
3750                     $post_name_check = $wpdb->get_var( $wpdb->prepare( $check_sql, $alt_post_name, $post_type, $post_ID, $post_parent ) );
3751                     $suffix++;
3752                } while ( $post_name_check );
3753                $slug = $alt_post_name;
3754           }
3755      } else {