miraziz 26 ارسال شده در خرداد 98 گزارش بازنشر ارسال شده در خرداد 98 (ویرایش شده) سلام دوستان. همانطور که میدانید وردپرس به صورت پیشفرض کلمهی category را در urlهای مربوط به دستهها میآورد(مثال زیر) که البته میتوان این کلمه را از تنظیمات-»پیوندهای یکتا به عبارتی دیگر تغییر داد. mysite.com/category/news حالا آیا امکانش است که این عبارت را از url به کلی حذف کرد(مثال زیر) و البته آدرسهای قدیمی به صورت خودکار به آدرس جدید ریدایرکت شوند تا از نظر گوگل نیز صفحات 404 نداشته باشم؟ (روشی که بدون افزونه باشد) mysite.com/news ویرایش شده خرداد 98 توسط miraziz لینک به ارسال
miraziz 26 ارسال شده در خرداد 98 مالک گزارش بازنشر ارسال شده در خرداد 98 من در وب این کد را پیدا کردم که هم عبارت category را حذف می کند و هم همهی دستههای مادر را. برای مثال لینک زیر را mysite.com/category/news/sport را به لینک زیر تغییر می دهد mysite.com/sport ولی این مشکل را دارد که لینک جدید خطای 404 میده و محتوای دسته را نشون نمیده // Remove category base add_filter('category_link', 'no_category_parents',1000,2); function no_category_parents($catlink, $category_id) { $category = &get_category( $category_id ); if ( is_wp_error( $category ) ) return $category; $category_nicename = $category->slug; $catlink = trailingslashit(get_option( 'home' )) . user_trailingslashit( $category_nicename, 'category' ); return $catlink; } // Add our custom category rewrite rules add_filter('category_rewrite_rules', 'no_category_parents_rewrite_rules'); function no_category_parents_rewrite_rules($category_rewrite) { //print_r($category_rewrite); // For Debugging $category_rewrite=array(); $categories=get_categories(array('hide_empty'=>false)); foreach($categories as $category) { $category_nicename = $category->slug; $category_rewrite['('.$category_nicename.')/(?:feed/)?(feed|rdf|rss|rss2|atom)/?$'] = 'index.php?category_name=$matches[1]&feed=$matches[2]'; $category_rewrite['('.$category_nicename.')/page/?([0-9]{1,})/?$'] = 'index.php?category_name=$matches[1]&paged=$matches[2]'; $category_rewrite['('.$category_nicename.')/?$'] = 'index.php?category_name=$matches[1]'; } // Redirect support from Old Category Base global $wp_rewrite; $old_base = $wp_rewrite->get_category_permastruct(); $old_base = str_replace( '%category%', '(.+)', $old_base ); $old_base = trim($old_base, '/'); $category_rewrite[$old_base.'$'] = 'index.php?category_redirect=$matches[1]'; //print_r($category_rewrite); // For Debugging return $category_rewrite; } // Add 'category_redirect' query variable add_filter('query_vars', 'no_category_parents_query_vars'); function no_category_parents_query_vars($public_query_vars) { $public_query_vars[] = 'category_redirect'; return $public_query_vars; } // Redirect if 'category_redirect' is set add_filter('request', 'no_category_parents_request'); function no_category_parents_request($query_vars) { //print_r($query_vars); // For Debugging if(isset($query_vars['category_redirect'])) { $catlink = trailingslashit(get_option( 'home' )) . user_trailingslashit( $query_vars['category_redirect'], 'category' ); status_header(301); header("Location: $catlink"); exit(); } return $query_vars; } لینک به ارسال
اسماعیل ابراهیمی 371 ارسال شده در خرداد 98 گزارش بازنشر ارسال شده در خرداد 98 سلام آموزش زیر رو تست کنید https://jonnyjordan.com/blog/how-to-remove-category-from-your-urls-in-wordpress برای ریدایرکت ها هم باید از عبارات باقاعده در فایل htaccess کمک بگیرید یه کدی شبیه به این Redirect 301 /old-page-here.html http://www.yournewwebsite.com/new-page-here.html لینک به ارسال
miraziz 26 ارسال شده در خرداد 98 مالک گزارش بازنشر ارسال شده در خرداد 98 در 3 ساعت قبل، resanehwp گفته است : سلام آموزش زیر رو تست کنید https://jonnyjordan.com/blog/how-to-remove-category-from-your-urls-in-wordpress برای ریدایرکت ها هم باید از عبارات باقاعده در فایل htaccess کمک بگیرید یه کدی شبیه به این Redirect 301 /old-page-here.html http://www.yournewwebsite.com/new-page-here.html سلام. سپاسگذارم. دو روش موجود در لینک که افزونه بودند و روش سوم که با استفاده از فایل htaccess بود، متاسفانه کار نکرد. لینک به ارسال
karamusic 4 ارسال شده در خرداد 98 گزارش بازنشر ارسال شده در خرداد 98 در 13 دقیقه قبل، miraziz گفته است : سلام. سپاسگذارم. دو روش موجود در لینک که افزونه بودند و روش سوم که با استفاده از فایل htaccess بود، متاسفانه کار نکرد. تنظیمات افزونه Yoast SEO> ظاهر جستجو > طبقه بندی ها شده و آخرین گزینه یعنی: حذف پیشوند دستهها را روی غیر فعال تنظیم کنید. 1 لینک به ارسال
miraziz 26 ارسال شده در خرداد 98 مالک گزارش بازنشر ارسال شده در خرداد 98 در 19 ساعت قبل، karamusic گفته است : تنظیمات افزونه Yoast SEO> ظاهر جستجو > طبقه بندی ها شده و آخرین گزینه یعنی: حذف پیشوند دستهها را روی غیر فعال تنظیم کنید. سلام ممنون از راهنماییتان. درست است. برای این منظور افزونه های دیگری هم هستند. من میخواستم ببینم بدون افزونه هم این امکان است. چون میخواستم علاوه بر عبارت category یکی از دستههای مادر را هم از url حذف کنم. لینک به ارسال
پست های پیشنهاد شده
لطفا برای ارسال دیدگاه وارد شوید
شما بعد از اینکه وارد حساب کاربری خود شدید می توانید دیدگاهی ارسال کنید
ورود به حساب کاربری