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
3751            * Filter whether the post slug would make a bad hierarchical post slug.
3752            *
3753            * @since 3.1.0
3754            *
3755            * @param bool   $bad_slug    Whether the post slug would be bad in a hierarchical post context.
3756            * @param string $slug        The post slug.
3757            * @param string $post_type   Post type.
3758            * @param int    $post_parent Post parent ID.
3759            */
3760           if ( $post_name_check || in_array( $slug, $feeds ) || preg_match( "@^($wp_rewrite->pagination_base)?\d+$@", $slug )  || apply_filters( 'wp_unique_post_slug_is_bad_hierarchical_slug', false, $slug, $post_type, $post_parent ) ) {
3761                $suffix = 2;
3762                do {
3763                     $alt_post_name = _truncate_post_slug( $slug, 200 - ( strlen( $suffix ) + 1 ) ) . "-$suffix";
3764                     $post_name_check = $wpdb->get_var( $wpdb->prepare( $check_sql, $alt_post_name, $post_type, $post_ID, $post_parent ) );
3765                     $suffix++;
3766                } while ( $post_name_check );
3767                $slug = $alt_post_name;
3768           }
3769      } else {