Changer le type de publication personnalisé en hiérarchique après avoir été enregistré

9

Très similaire à cette question précédente: Modification de l'argument de «réécriture» après l'enregistrement du type de publication personnalisé

J'essaie de rendre les produits MarketPress hiérarchiques - je peux le faire en piratant les fichiers du plugin, mais je voudrais m'en éloigner si je le peux.

Est-il possible de modifier les arguments d'un type de publication personnalisé après qu'il a été enregistré, mais avant que toutes les opérations de réécriture internes aient été effectuées?

MISE À JOUR: voici la solution

Et comme d'habitude, je trouve la réponse quelques minutes après avoir posté la question ...

Voici donc ce que j'ai fait dans le fichier functions.php de mon thème pour résoudre mon problème:

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 );

Tout fonctionne: hiérarchie, réécriture, etc. :)

ragulka
la source
5
Ragulka, pouvez-vous supprimer le RESOLU de votre titre et publier votre solution comme réponse. Après 24 heures, vous pourrez l'accepter. Cela facilite simplement la tâche aux personnes qui peuvent avoir le même problème / similaire. Merci.
Stephen Harris
@ragulka Bienvenue sur WordPress Stack Exchange! Veuillez noter: ce site n'est pas le format habituel du forum de support, mais utilise plutôt un format de questions et réponses , afin de construire une base de connaissances solide. Les questions et réponses sont publiées séparément et sont votées à la hausse et à la baisse par la communauté. Le PO "accepte" la réponse qui a le mieux résolu la question d'origine. Ainsi, comme l'a dit Stephen Harris: veuillez publier votre solution en tant que réponse , puis acceptez cette réponse.
Chip Bennett
Hé, désolé pour ça. J'ai en fait essayé de répondre à ma propre question mais je n'ai pas pu, on m'a dit d'attendre 8 heures ou d'ajouter un commentaire ou de modifier ma question à la place. Alors je l'ai fait. Eh bien, je suppose que j'attendrai encore 4 heures et ensuite je pourrai répondre à ma question.
ragulka

Réponses:

10

Et comme d'habitude, je trouve la réponse quelques minutes après avoir posté la question ...

Voici donc ce que j'ai fait dans le fichier functions.php de mon thème pour résoudre mon problème:

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 );

Tout fonctionne: hiérarchie, réécriture, etc. :)

ragulka
la source