تغییر پیوندهای یکتا پیش فرض سایت وردپرس در فانکشن
	
	
		سلام دوستان   
ببنید میخواستم وقتی برای یک برگه، parent مشخص میکنم. ادرس parent توی یو ار ال نیاد. 
بذارید مثال بزنم:  مثلا برگهC زیر مجموعه برگه A  هست. حالا آدرس url برگه C به این صورت میشه.   www.example.com/A/C
و من نمیخوام این اتفاق بیفته میخوام ادرس یو ار ال برگه C به این صورت باشه  ------->   www.example.com/C
ولی برادکرامپ C به این صورت نمایش داده بشه :     Home > A > C
حالا باید توی فانکشن چه کدی بنویسم که یوارال برگه هایی مثل برگه c  به این صورت باشه: www.example.com/C 
نمیدونم دیگه باید چه طور توضیح بدم.
	 
	
	
	
		پاسخ : تغییر پیوندهای یکتا پیش فرض سایت وردپرس در فانکشن
	
	
		درود بر شما
میتونید از این افزونه استفاده کنید.
موفق و پیروز باشید
	 
	
	
	
		پاسخ : تغییر پیوندهای یکتا پیش فرض سایت وردپرس در فانکشن
	
	
		نه اصلا نمیخوام از افزونه استفاده کنم و ادرس ریدایرکت بشه
	 
	
	
	
		پاسخ : تغییر پیوندهای یکتا پیش فرض سایت وردپرس در فانکشن
	
	
		میتونید از این تکه کد استفاده کنید
موفق باشید
	 
	
	
	
		پاسخ : تغییر پیوندهای یکتا پیش فرض سایت وردپرس در فانکشن
	
	
		نمیدونم چرا این کد رو میذارم عمل نمیکنه فقط میخوام روی برگه ها عمل کنه نه پست تایپ ها
	کد PHP:
	
function wpse_101072_flatten_hierarchies( $page_link, $post ) {    if  (  $post->post_type != 'page')        return $page_link;
    $uri = '';    foreach ( $post->ancestors as $parent ) {        $uri = get_post( $parent )->post_name . "/" . $uri;    }
    return str_replace( $uri, '', $page_link );}add_filter( 'page_link', 'wpse_101072_flatten_hierarchies', 10, 2 ); 
 
	 
	
	
	
		پاسخ : تغییر پیوندهای یکتا پیش فرض سایت وردپرس در فانکشن
	
	
		
	نقل قول:
	
		
		
			
				نوشته اصلی توسط 
elan
				 
			نمیدونم چرا این کد رو میذارم عمل نمیکنه فقط میخوام روی برگه ها عمل کنه نه پست تایپ ها
	کد PHP:
	
function wpse_101072_flatten_hierarchies( $page_link, $post ) {    if  (   $post->post_type != 'page')        return $page_link;
    $uri = '';    foreach ( $post->ancestors as $parent ) {         $uri = get_post( $parent )->post_name . "/" . $uri;    }
    return str_replace( $uri, '', $page_link );}add_filter( 'page_link', 'wpse_101072_flatten_hierarchies', 10, 2 ); 
 
	 
 باسلام، برگه ها یک پست تایپ هستند. کد های بالا تنها آدرس ها را برای نمایش عوض  می کنند (***** های page_link، post_type_link و ..). اگر با این ***** ها  آدرس ها به صورت example.com/C در سایت نمایش دهید کار شما تمام نخواهد شد،  در صورتی که وارد این آدرس ها شوید وردپرس 404 خواهد داد به دلیل آنکه  داخل پست ها دنبال پستی با اسم C می گردد (با توجه به ساختار آدرس هاتون  ممکن است نتیجه متفاوت باشد)، شما باید یک rewrite rule هم اضافه کنید که  به برگه ها هدایت شود و دنبال C بگردد :
	کد:
	
function myinit() {
  global $wp,$wp_rewrite;
  $wp_rewrite->add_rule('(.*)','index.php?post_type=page&name=$matches[1]', 'top');
}
add_action('init','myinit');
 
پس از قرار دادن کد بالا باید rule ها یک بار flush شود. در کل پیشنهاد  نمی کنم دستی این کار را انجام دهید مگر بدهید یک برنامه نویس انجام دهد و در آخر  بهتر است با افزونه های موجود کار کنید.