Schimbă permalinkurile doar pentru post type 'post'
Ca mulți alții, aș dori să am: domain.com/titlu-articol schimbat în domain.com/blog/titlu-articol dar doar pentru post type 'post', nu și pentru 'page' și cu siguranță nu pentru custom post types (din care tema mea pare să aibă multe).
Am făcut cercetări pe acest forum și pe alte surse și știu că răspunsul general pare să fie:
Când îți înregistrezi post type, argumentul with_front din rewrite ar trebui să fie false.
$args = array(
'rewrite' => array( 'with_front' => false ),
);
register_post_type( 'your-post-type', $args );
Din păcate, acest lucru nu ajută începătorii. Nu știm ce se înțelege prin instrucțiunile de mai sus. Se pare că ar trebui să reînregistrăm cumva post type-ul implicit "post" (deși post type-ul "post" există deja și este în uz), dar nu știm cum și unde să facem asta. Dacă cineva poate să lămurească procedura necesară pentru schimbarea URL-urilor articolelor din blog, aș fi foarte recunoscător.

Am găsit răspunsul aici. Nu uitați să vizitați linkul și să dați un like.
O să postez soluția aici, pentru cei care sunt grăbiți.
Introduceți acest cod în fișierul functions.php
:
function wp1482371_custom_post_type_args( $args, $post_type ) {
if ( $post_type == "post" ) {
$args['rewrite'] = array(
'slug' => 'blog'
);
}
return $args;
}
add_filter( 'register_post_type_args', 'wp1482371_custom_post_type_args', 20, 2 );
(Testat și funcționează).
Nu uitați!!
Nu uitați A) Actualizați structura linkurilor permanente după aceasta (accesând Setări >> Linkuri permanente >> Apăsați 'Salvare modificări' ).
Nu uitați B) Dacă obțineți rezultate ciudate, încercați să deschideți o fereastră incognito și să verificați dacă funcționează acolo. WordPress are o funcție care redirecționează către 'URL-ul cel mai apropiat', ceea ce poate părea confuz atunci când experimentați cu linkurile permanente.
Ați putea încerca și să găsiți un Plugin care să facă asta. Eu nu aș face asta, deoarece este excesiv să adăugați un plugin doar pentru acest scop. Dar hei, - uneori poate fi satisfăcător să împuști vrăbii cu tunuri (nici o pasăre nu a fost rănită în realizarea acestei glume).

O soluție scurtă și frumoasă cu o explicație rezonabilă. Din păcate, nu este ceea ce caut. În prezent, folosește definiția "rewrite" pentru a redirecționa către vechiul permalink ("/blog/post" -> "/post"). Totuși, eu doresc să păstrez URL-ul "/blog/post". Cum ai realiza acest lucru?

Pentru a extinde: Se poate remedia adăugând următoarele: add_filter('pre_post_link', 'my_change_post_link', 10, 3);
function my_change_post_link($permalink, $post, $leavename) {
if (get_post_type($post) == 'post') {
return "/blog" . $permalink;
}
return $permalink;
}

@Chaoste OMG care sunt șansele să am nevoie de asta chiar a doua zi. Am căutat peste tot - MULȚUMESC MULȚUMESC

Ai încercat asta?
function generate_rewrite_rules( $wp_rewrite ) {
$new_rules = array(
'(.?.+?)/page/?([0-9]{1,})/?$' => 'index.php?pagename=$matches[1]&paged=$matches[2]',
'blog/([^/]+)/?$' => 'index.php?post_type=post&name=$matches[1]',
'blog/[^/]+/attachment/([^/]+)/?$' => 'index.php?post_type=post&attachment=$matches[1]',
'blog/[^/]+/attachment/([^/]+)/trackback/?$' => 'index.php?post_type=post&attachment=$matches[1]&tb=1',
'blog/[^/]+/attachment/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$' => 'index.php?post_type=post&attachment=$matches[1]&feed=$matches[2]',
'blog/[^/]+/attachment/([^/]+)/(feed|rdf|rss|rss2|atom)/?$' => 'index.php?post_type=post&attachment=$matches[1]&feed=$matches[2]',
'blog/[^/]+/attachment/([^/]+)/comment-page-([0-9]{1,})/?$' => 'index.php?post_type=post&attachment=$matches[1]&cpage=$matches[2]',
'blog/[^/]+/attachment/([^/]+)/embed/?$' => 'index.php?post_type=post&attachment=$matches[1]&embed=true',
'blog/[^/]+/embed/([^/]+)/?$' => 'index.php?post_type=post&attachment=$matches[1]&embed=true',
'blog/([^/]+)/embed/?$' => 'index.php?post_type=post&name=$matches[1]&embed=true',
'blog/[^/]+/([^/]+)/embed/?$' => 'index.php?post_type=post&attachment=$matches[1]&embed=true',
'blog/([^/]+)/trackback/?$' => 'index.php?post_type=post&name=$matches[1]&tb=1',
'blog/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$' => 'index.php?post_type=post&name=$matches[1]&feed=$matches[2]',
'blog/([^/]+)/(feed|rdf|rss|rss2|atom)/?$' => 'index.php?post_type=post&name=$matches[1]&feed=$matches[2]',
'blog/page/([0-9]{1,})/?$' => 'index.php?post_type=post&paged=$matches[1]',
'blog/[^/]+/page/?([0-9]{1,})/?$' => 'index.php?post_type=post&name=$matches[1]&paged=$matches[2]',
'blog/([^/]+)/page/?([0-9]{1,})/?$' => 'index.php?post_type=post&name=$matches[1]&paged=$matches[2]',
'blog/([^/]+)/comment-page-([0-9]{1,})/?$' => 'index.php?post_type=post&name=$matches[1]&cpage=$matches[2]',
'blog/([^/]+)(/[0-9]+)?/?$' => 'index.php?post_type=post&name=$matches[1]&page=$matches[2]',
'blog/[^/]+/([^/]+)/?$' => 'index.php?post_type=post&attachment=$matches[1]',
'blog/[^/]+/([^/]+)/trackback/?$' => 'index.php?post_type=post&attachment=$matches[1]&tb=1',
'blog/[^/]+/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$' => 'index.php?post_type=post&attachment=$matches[1]&feed=$matches[2]',
'blog/[^/]+/([^/]+)/(feed|rdf|rss|rss2|atom)/?$' => 'index.php?post_type=post&attachment=$matches[1]&feed=$matches[2]',
'blog/[^/]+/([^/]+)/comment-page-([0-9]{1,})/?$' => 'index.php?post_type=post&attachment=$matches[1]&cpage=$matches[2]',
);
$wp_rewrite->rules = $new_rules + $wp_rewrite->rules;
}
add_action( 'generate_rewrite_rules', 'generate_rewrite_rules' );
function update_post_link( $post_link, $id = 0 ) {
$post = get_post( $id );
if( is_object( $post ) && $post->post_type == 'post' ) {
return home_url( '/blog/' . $post->post_name );
}
return $post_link;
}
add_filter( 'post_link', 'update_post_link', 1, 3 );

//Plasează codul în function.php
add_action('init', 'my_new_default_post_type', 1);
function my_new_default_post_type()
{
register_post_type('post', array(
// 'labels' => $labels,
'public' => true,
//'show_in_admin_bar' => true,
'_builtin' => false,
'_edit_link' => 'post.php?post=%d',
'capability_type' => 'post',
'map_meta_cap' => true,
'hierarchical' => false,
'rewrite' => array('slug' => 'resurse/blog'), // Adaugă slug-ul dorit aici
'query_var' => false,
'supports' => array('title', 'editor', 'author', 'thumbnail', 'excerpt', 'trackbacks', 'custom-fields', 'comments', 'revisions', 'post-formats'),
));
/* Dacă adaugi codul de mai sus în function.php, paginarea blogului tău va înceta să funcționeze. Va trebui să adaugi o regulă de rescriere folosind pluginul "Debug This" în secțiunea Query >> Rewrite și să modifici rewrite_rule. */
add_rewrite_rule('(.?.+?)/page/?([0-9]{1,})/?$', 'index.php?pagename=resurse/blog&paged=$matches[1]', 'top');
}
