Bardzo podobne do poprzedniego pytania: Zmiana argumentu „przepisz” po zarejestrowaniu niestandardowego typu postu
Staram się, aby produkty MarketPress były zhierarchizowane - mogę to zrobić poprzez zhakowanie plików wtyczek, ale chciałbym trzymać się od nich z daleka, jeśli mogę.
Czy można zmienić argumenty niestandardowego typu postu po jego zarejestrowaniu, ale przed wykonaniem wszystkich wewnętrznych operacji przepisywania?
AKTUALIZACJA: Oto rozwiązanie
I jak to zwykle bywa, znajduję odpowiedź kilka minut po opublikowaniu pytania ...
Oto, co zrobiłem w pliku functions.php mojego motywu, aby rozwiązać mój problem:
function modify_products() {
if ( post_type_exists( 'product' ) ) {
/* Give products hierarchy (for house plans) */
global $wp_post_types, $wp_rewrite;
$wp_post_types['product']->hierarchical = true;
$args = $wp_post_types['product'];
$wp_rewrite->add_rewrite_tag("%product%", '(.+?)', $args->query_var ? "{$args->query_var}=" : "post_type=product&name=");
add_post_type_support('product','page-attributes');
}
}
add_action( 'init', 'modify_products', 1 );
Wszystko działa: hierarchia, przepisywanie itp. :)