Cambiar el tipo de publicación personalizada a jerárquica después de registrarse

9

Muy similar a esta pregunta anterior: Cambiar el argumento 'reescribir' después de registrar el tipo de publicación personalizada

Estoy tratando de hacer que los productos de MarketPress sean jerárquicos: puedo hacerlo pirateando los archivos del complemento, pero me gustaría alejarme de ellos si puedo.

¿Es posible cambiar los argumentos de un tipo de publicación personalizada después de que se haya registrado, pero antes de que se hayan realizado todas las tareas internas de reescritura?

ACTUALIZACIÓN: Aquí está la solución

Y como suele suceder, encuentro la respuesta unos minutos después de publicar la pregunta ...

Entonces, esto es lo que hice en el archivo functions.php de mi tema para resolver mi problema:

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

Todo funciona: jerarquía, reescritura, etc. :)

ragulka
fuente
55
Ragulka, ¿puedes eliminar el SOLUCIONADO de tu título y publicar tu solución como respuesta? Después de 24 horas podrás aceptarlo. Simplemente hace que sea más fácil para las personas que pueden tener el mismo problema / similar. Gracias.
Stephen Harris el
@ragulka bienvenido a WordPress Stack Exchange! Tenga en cuenta que este sitio no es el formato habitual de foro de soporte, sino que utiliza un formato de preguntas y respuestas para construir una base sólida de conocimiento. Las preguntas y respuestas se publican por separado y la comunidad las vota hacia arriba y hacia abajo. El OP "acepta" la respuesta que mejor resolvió la pregunta original. Entonces, como dijo Stephen Harris: publique su solución como una Respuesta y luego acepte esa respuesta.
Chip Bennett
Oye, perdón por eso. En realidad intenté responder mi propia pregunta pero no pude, me dijeron que esperara 8 horas o que agregara un comentario o editara mi pregunta. Así que lo hice. Bueno, supongo que esperaré otras 4 horas y luego puedo responder mi pregunta.
ragulka

Respuestas:

10

Y como suele suceder, encuentro la respuesta unos minutos después de publicar la pregunta ...

Entonces, esto es lo que hice en el archivo functions.php de mi tema para resolver mi problema:

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

Todo funciona: jerarquía, reescritura, etc. :)

ragulka
fuente