رفتن به مطلب

حذف category base تنها از آدرس پست ها


go23user

پست های پیشنهاد شده

سلام ، درود دوستان

چطور میشه تنها categorybase رو از آدرس پست ها و نه از آدرس درسته بندی ها حذف کرد ،

حالت کنونی : domain.ir/cat1/subcat/postname

حالت مد نظر : domain.ir/subcat/postname


و در آدرس کتگوری ها تغییری ایجاد نشه و فقط از پست ها categorybase حذف شه.

 

از چندین پلاگین مثل no category url استفاده کردم اما جواب نداد ، مد نظر اینه که تنها از آدرس پست ها کتگوری اصلی حذف شه و ساب کتگوری آخر هر کتگوری و نام پست نمایش داده شن

و در آدرس کتگوری ها تغییری ایجاد نشه و کتگوری اصلی در اون نمایش داده شه.

 

کسی تا به حال اینو تجربه کرده ؟

 

خدا پشت و پناه همگی

لینک به ارسال

از این کد استفاده کردم اما برای بعضی از پست ها page not found میده و بخشی از postname رو از بعضی از پست ها حذف می کنه مثلا چند کاراکتر از آخر نام پست ها رو در آدرس نهایی بعضی از پست ها کم می کنه حتی پست هایی با آدرس های کوتاه ، کی می دونه مشکلش از کجاست ؟

add_filter( 'post_link', 'remove_parent_cats_from_link', 10, 3 );
function remove_parent_cats_from_link( $permalink, $post, $leavename )
{
$cats = get_the_category( $post->ID );
if ( $cats ) {
// Make sure we use the same start cat as the permalink generator
usort( $cats, '_usort_terms_by_ID' ); // order by ID
$category = $cats[0]->slug;
if ( $parent = $cats[0]->parent ) {
// If there are parent categories, collect them and replace them in the link
$parentcats = get_category_parents( $parent, false, '/', true );
// str_replace() is not the best solution if you can have duplicates:
// myexamplesite.com/luxemburg/luxemburg/ will be stripped down to myexamplesite.com/
// But if you don't expect that, it should work
$permalink = str_replace( $parentcats, '', $permalink );
}
}
return $permalink;
}

 

لینک به ارسال

لطفا برای ارسال دیدگاه وارد شوید

شما بعد از اینکه وارد حساب کاربری خود شدید می توانید دیدگاهی ارسال کنید



ورود به حساب کاربری
×
×
  • اضافه کردن...