slug personalizat pentru tipul de postare personalizată
Salut și mulțumesc pentru citire.
Vreau să adaug autorul postării în slug-ul tipului meu de postare personalizată.
Exemplu: http://example.com/grafice/%autor%/
Ai vreo idee cum să realizez asta?
Iată tipul meu de postare personalizată:
register_post_type('grafice', array(
'label' => 'Grafice',
'description' => '',
'public' => true,
'show_ui' => true,
'show_in_menu' => true,
'capability_type' => 'post',
'hierarchical' => false,
'rewrite' => array('slug' => '/grafice/autor'),
'query_var' => true,
'supports' => array(
'title',
'editor',
'trackbacks',
'custom-fields',
'comments',
'author',
),
'labels' => array (
'name' => 'Grafice',
'singular_name' => 'Grafic',
'menu_name' => 'Grafice',
'add_new' => 'Adaugă Grafic',
),
));
mulțumesc jnz

Am găsit o soluție și am decis să o împărtășesc, pentru că e frumos să fii bun. Funcționează pentru mine și se bazează pe o soluție a lui Jonathan Brinley. Dacă cineva are sugestii sau corecții, nu ezitați să-mi spuneți.
Mai întâi, creează-ți tipul personalizat de postare și configurează-l astfel (acesta este doar un exemplu, asigură-te că se potrivește nevoilor tale. Setarea slug-ului este importantă!):
register_post_type('charts', array(
'label' => 'Orice',
'description' => '',
'public' => true,
'show_ui' => true,
'show_in_menu' => true,
'capability_type' => 'post',
'hierarchical' => true,
'rewrite' => array('slug' => '/orice/%author%'),
'query_var' => true,
'supports' => array(
'title',
'editor',
'trackbacks',
'custom-fields',
'comments',
'author'
)
));
Apoi, configurează o funcție pentru filtrul tău (în functions.php
):
function my_post_type_link_filter_function($post_link, $id = 0, $leavename = FALSE) {
if (strpos('%author%', $post_link) === FALSE) {
$post = &get_post($id);
$author = get_userdata($post->post_author);
return str_replace('%author%', $author->user_nicename, $post_link);
}
}
Apoi activează filtrul (tot în functions.php
):
add_filter('post_type_link', 'my_post_type_link_filter_function', 1, 3);
Cum am spus, nu sunt sigur că aceasta este cea mai bună metodă, dar funcționează pentru mine :)
