Title: avoid_blog_page_permalink_collision
Published: April 25, 2014
Last modified: February 24, 2026

---

# avoid_blog_page_permalink_collision( array $data, array $postarr ): array

## In this article

 * [Description](https://developer.wordpress.org/reference/functions/avoid_blog_page_permalink_collision/?output_format=md#description)
 * [Parameters](https://developer.wordpress.org/reference/functions/avoid_blog_page_permalink_collision/?output_format=md#parameters)
 * [Return](https://developer.wordpress.org/reference/functions/avoid_blog_page_permalink_collision/?output_format=md#return)
 * [Source](https://developer.wordpress.org/reference/functions/avoid_blog_page_permalink_collision/?output_format=md#source)
 * [Related](https://developer.wordpress.org/reference/functions/avoid_blog_page_permalink_collision/?output_format=md#related)
 * [Changelog](https://developer.wordpress.org/reference/functions/avoid_blog_page_permalink_collision/?output_format=md#changelog)

[ Back to top](https://developer.wordpress.org/reference/functions/avoid_blog_page_permalink_collision/?output_format=md#wp--skip-link--target)

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

## 󠀁[Description](https://developer.wordpress.org/reference/functions/avoid_blog_page_permalink_collision/?output_format=md#description)󠁿

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.

## 󠀁[Parameters](https://developer.wordpress.org/reference/functions/avoid_blog_page_permalink_collision/?output_format=md#parameters)󠁿

 `$data`arrayrequired

An array of post data.

`$postarr`arrayrequired

An array of posts. Not currently used.

## 󠀁[Return](https://developer.wordpress.org/reference/functions/avoid_blog_page_permalink_collision/?output_format=md#return)󠁿

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

## 󠀁[Source](https://developer.wordpress.org/reference/functions/avoid_blog_page_permalink_collision/?output_format=md#source)󠁿

    ```php
    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 all references](https://developer.wordpress.org/reference/files/wp-admin/includes/ms.php/)
[View on Trac](https://core.trac.wordpress.org/browser/tags/6.9.4/src/wp-admin/includes/ms.php#L726)
[View on GitHub](https://github.com/WordPress/wordpress-develop/blob/6.9.4/src/wp-admin/includes/ms.php#L726-L756)

## 󠀁[Related](https://developer.wordpress.org/reference/functions/avoid_blog_page_permalink_collision/?output_format=md#related)󠁿

| Uses | Description | 
| [is_main_site()](https://developer.wordpress.org/reference/functions/is_main_site/)`wp-includes/functions.php` |

Determines whether a site is the main site of the current network.

  | 
| [is_subdomain_install()](https://developer.wordpress.org/reference/functions/is_subdomain_install/)`wp-includes/ms-load.php` |

Whether a subdomain configuration is enabled.

  | 
| [get_id_from_blogname()](https://developer.wordpress.org/reference/functions/get_id_from_blogname/)`wp-includes/ms-blogs.php` |

Retrieves a site’s ID given its (subdomain or directory) slug.

  |

## 󠀁[Changelog](https://developer.wordpress.org/reference/functions/avoid_blog_page_permalink_collision/?output_format=md#changelog)󠁿

| Version | Description | 
| [3.0.0](https://developer.wordpress.org/reference/since/3.0.0/) | Introduced. |

## User Contributed Notes

You must [log in](https://login.wordpress.org/?redirect_to=https%3A%2F%2Fdeveloper.wordpress.org%2Freference%2Ffunctions%2Favoid_blog_page_permalink_collision%2F)
before being able to contribute a note or feedback.