avoid_blog_page_permalink_collision() – Avoids a collision between a site slug and a permalink slug.

You appear to be a bot. Output may be restricted

Description

Avoids a collision between a site slug and a permalink slug.

In a subdirectory installation this will make sure that a site and a post do not use the same subdirectory by checking for a site with the same name as a new post.

Usage

$array = avoid_blog_page_permalink_collision( $data, $postarr );

Parameters

$data
( array ) required – An array of post data.
$postarr
( array ) required – An array of posts. Not currently used.

Returns

array The new array of post data after checking for collisions.

Source

File name: wordpress/wp-admin/includes/ms.php
Lines:

1 to 31 of 31
function avoid_blog_page_permalink_collision( $data, $postarr ) {
  if ( is_subdomain_install() ) {
    return $data;
  }
  if ( 'page' !== $data['post_type'] ) {
    return $data;
  }
  if ( ! isset( $data['post_name'] ) || '' === $data['post_name'] ) {
    return $data;
  }
  if ( ! is_main_site() ) {
    return $data;
  }
  if ( isset( $data['post_parent'] ) && $data['post_parent'] ) {
    return $data;
  }

  $post_name = $data['post_name'];
  $c         = 0;

  while ( $c < 10 && get_id_from_blogname( $post_name ) ) {
    $post_name .= mt_rand( 1, 10 );
    $c++;
  }

  if ( $post_name !== $data['post_name'] ) {
    $data['post_name'] = $post_name;
  }

  return $data;
}
 

 View on GitHub View on Trac