避免现场段塞和永久性段塞之间的碰撞。

原型

avoid_blog_page_permalink_collision( array $data, array $postarr )

描述

在子目录安装中,这将通过检查与新帖子同名的站点来确保站点和帖子不使用相同的子目录。

参数

$data (array) (Required) 一系列发布数据。

$postarr (array) (Required) 一系列帖子。目前尚未使用。

返回值

(array)  检查冲突后的新数据后置数据。

源文件

路径:wp-admin/includes/ms.php

<?php
...
function avoid_blog_page_permalink_collision( $data, $postarr ) {
	if ( is_subdomain_install() )
		return $data;
	if ( $data['post_type'] != 'page' )
		return $data;
	if ( !isset( $data['post_name'] ) || $data['post_name'] == '' )
		return $data;
	if ( !is_main_site() )
		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;
}
...
?>

其他

英文文档:https://developer.wordpress.org/reference/functions/avoid_blog_page_permalink_collision/