lion_tik 2 ارسال شده در اردیبهشت 95 گزارش بازنشر ارسال شده در اردیبهشت 95 سلام چطور می تونم حذف نام custom post type از آدرس صفحه بکنم؟ یعنی دیگه اسم custom post type تو ادرس صفحه نباشه . تو سایت های خارجی توضیح دادن ولی نمونه فارسی پیدا نکردم برای این کار کسی می تونه راهنمایی کنه؟ نقل قول لینک به ارسال
فرحان 997 ارسال شده در اردیبهشت 95 گزارش بازنشر ارسال شده در اردیبهشت 95 سلام. توی لینک زیر دو کد داده نویسنده ی مطلب که هر دو رو میزارید توی فانکشن پوستتون و بعد توی هر دو تیکه کد عبارت race رو به اسم کاستوم پست تایپی که ساختین تغییر میدین. http://kellenmace.com/remove-custom-post-type-slug-from-permalinks/ خودم تست نکردم کدش رو. موفق باشید. 1 نقل قول لینک به ارسال
lion_tik 2 ارسال شده در اردیبهشت 95 مالک گزارش بازنشر ارسال شده در اردیبهشت 95 متاسفانه برای من کار نکرد. و هنوز اسم custom post type داخل آدرس میاد. افزونه https://wordpress.org/plugins/remove-slug-from-custom-post-type/ با اینکه برای دو سال پیش ولی میاد اسم رو از آدرس حذف میکنه ولی مشکل اینجاست که دیگه وقتی پستی زده میشه داخل custom post type خطای 404 میگیره. نقل قول لینک به ارسال
lion_tik 2 ارسال شده در اردیبهشت 95 مالک گزارش بازنشر ارسال شده در اردیبهشت 95 راه حل برای دوستانی که به مشکل مشابه بر خورد کردن. در این لینک آموزش این کار داده شده و خلاصه وار هم خودم میگم. https://shimion.com/how-to-remove-custom-post-type-slug-from-wordpress-custom-post-type-url/ اولین چیز اینه که در کد های ساخت custom post type باید ببینید که ایا کد rewrite هست یا نه.اگر نیز که کد زیر رو بذارید اگرم هست که به کد زیر تغییرش بدید . 'rewrite' => array( 'slug' => '' ), بعد بازم داخل فایل کد های custom post type کد زیر رو قرار بدید فقط باید اسم custom post type خودتون رو داخل کد به جای property قرار بدید. اسک custom post type شما در قسمت register_post_type کد خودتون درج شده. /** * Remove the slug from published post permalinks. */ function custom_remove_cpt_slug( $post_link, $post, $leavename ) { if ( 'property' != $post->post_type || 'publish' != $post->post_status ) { return $post_link; } $post_link = str_replace( '/' . $post->post_type . '/', '/', $post_link ); return $post_link; } add_filter( 'post_type_link', 'custom_remove_cpt_slug', 10, 3 ); و در آخر کد زیر رو باز پایین کد بالایی که قرار دادید بذارید و باز اسم custom post type خودتون رو داخل کد به جای property قرار بدید. /** * Some hackery to have WordPress match postname to any of our public post types * All of our public post types can have /post-name/ as the slug, so they better be unique across all posts * Typically core only accounts for posts and pages where the slug is /post-name/ */ function custom_parse_request_tricksy( $query ) { // Only noop the main query if ( ! $query->is_main_query() ) return; // Only noop our very specific rewrite rule match if ( 2 != count( $query->query ) || ! isset( $query->query['page'] ) ) { return; } // 'name' will be set if post permalinks are just post_name, otherwise the page rule will match if ( ! empty( $query->query['name'] ) ) { $query->set( 'post_type', array( 'post', 'property', 'page' ) ); } } add_action( 'pre_get_posts', 'custom_parse_request_tricksy' ); کار تموم شد. حالا افزونه Custom Post Type Permalinks رو نصب کنید و پیوند یکتای مد نظر رو بش بدید و تمام. خسته هم نباشید. نقل قول لینک به ارسال
پست های پیشنهاد شده
به گفتگو بپیوندید
هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .