Nie wiesz jak usunąć skróconą nazwę z adresu URL nowego typu wpisów? W tym wpisie znajdziesz wersję video oraz tekstową jak usunąć slug z CPT
Po co usuwać skróconą nazwę z adresu URL?
Są dwie możliwości:
- możesz pozostawić skróconą nazwę w adresie URL, jeżeli nazwa typu wpisu wspomoże i doprecyzuje treść którą umieszczasz na stronie internetowej.
W poniższym przykładzie nie ma sensu usuwać z adresu URL „Aparatura”, bo ta fraza jest połączona z wszystkimi podstronami i nie ma duplikatu treści. Ja dla przykładu przedrostek „filmy” umieściłem tylko i wyłącznie, by docierać do osób dla których filmik jest najbardziej wartościową treścią.
- Pozostawianie skróconej nazwy w adresie URL nie ma jednak sensu, jeżeli nie zamierzasz jej w żaden sposób wykorzystywać i nie ma znaczenia dla SEO.
Dlaczego nie mogę użyć opcji With Front we wtyczce Custom Post Type UI?
Bo służy ona do czegoś innego – wytłumaczyłem to w filmie, w którym tłumaczę wszystkie ustawienia we wtyczce Custom Post Type UI tutaj.
Sprawdzony sposób na usunięcie skróconej nazwy z adresu URL
/**
*
* Odc. 3. Jak usunąć z adresu URL skróconą nazwę nowego typu wpisu?
*
* Źródło: https://wordpress.stackexchange.com/questions/203951/remove-slug-from-custom-post-type-post-urls
*
*/
function lw_remove_slug_podcast( $post_link, $post, $leavename ) {
if ( 'podcast' != $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', 'lw_remove_slug_podcast', 10, 3 );
function lw_parse_request_podcast( $query ) {
if ( ! $query->is_main_query() || 2 != count( $query->query ) || ! isset( $query->query['page'] ) ) {
return;
}
if ( ! empty( $query->query['name'] ) ) {
$query->set( 'post_type', array( 'post', 'podcast', 'page' ) );
}
}
add_action( 'pre_get_posts', 'lw_parse_request_podcast' );
Dodaj komentarz