Po zarejestrowaniu zmień niestandardowy typ postu na hierarchiczny

9

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. :)

ragulka
źródło
5
Ragulka, czy możesz usunąć ROZWIĄZANIE z tytułu i opublikować swoje rozwiązanie jako odpowiedź. Po 24 godzinach będziesz mógł to zaakceptować. To po prostu ułatwia ludziom, którzy mogą mieć ten sam / podobny problem. Dzięki.
Stephen Harris
@ragulka witamy w WordPress Stack Exchange! Uwaga: ta strona nie jest zwykłym formatem forum wsparcia, ale raczej używa formatu pytań i odpowiedzi , aby zbudować solidną bazę wiedzy. Pytania i odpowiedzi są publikowane osobno, a społeczność głosuje w górę i w dół. PO „przyjmuje” odpowiedź, która najlepiej rozwiązała pierwotne pytanie. Tak więc, jak powiedział Stephen Harris: opublikuj swoje rozwiązanie jako odpowiedź , a następnie zaakceptuj tę odpowiedź.
Chip Bennett
Hej, przepraszam za to. Próbowałem odpowiedzieć na własne pytanie, ale nie mogłem, kazano mi czekać albo 8 godzin, albo dodać komentarz lub edytować moje pytanie. Więc zrobiłem. Cóż, chyba poczekam kolejne 4 godziny, a potem mogę odpowiedzieć na moje pytanie.
ragulka

Odpowiedzi:

10

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. :)

ragulka
źródło