Modifica as regras de reescrita de tipo de postagem customizada em uma função separada

4

Desejo modificar as regras de regravação de um tipo de postagem personalizado, tribe_events , que está registrado como um tipo de postagem nos arquivos principais do plug-in "O calendário de eventos" (a linha 24 de eventos-calendário.classe):

    protected $postTypeArgs = array(
        'public' => true,
        'rewrite' => array('slug' => 'event', 'with_front' => false),
        'menu_position' => 6,
        'supports' => array('title','editor','excerpt','author','thumbnail', 'custom-fields'),
        'capability_type' => array('tribe_event', 'tribe_events'),
        'map_meta_cap' => true
    );

O que eu gostaria de fazer é modificar a linha:

        'rewrite' => array('slug' => 'event', 'with_front' => false)

Para:

'reescrever' = > array ('slug' = > 'evento /% lugares%', 'com_frente' = > falso)

Onde "% lugares%" é o nome de uma taxonomia personalizada.

Então, meu plano é usar a seguinte função para concluir o processo de reescrita:

add_filter('post_type_link', 'events_permalink_structure', 10, 4);
function events_permalink_structure($post_link, $post, $leavename, $sample)
{
    if ( false !== strpos( $post_link, '%lugares%' ) ) {
        $lugares_term = get_the_terms( $post->ID, 'lugares' );
        $post_link = str_replace( '%lugares%', array_pop( $lugares_term )->slug, $post_link );
    }
    return $post_link;
}

O problema é que não quero modificar os arquivos do plug-in principal. Existe uma maneira de modificar o argumento de reconfiguração de tipo de postagem personalizada em uma função separada de dentro do functions.php ?? do meu tema?

Obrigado!

    
por j-man86 31.05.2012 / 00:20

1 resposta

2

Sim, acredito que você pode. Cole este código no arquivo functions.php do seu tema:

function change_tribe_events_rewrite_rules() {
    global $wp_post_types;
    $rewrite = &$wp_post_types['tribe_events']->rewrite;
    $rewrite['slug'] = 'event/%lugares%';
}
add_action( 'init', 'change_tribe_events_rewrite_rules', 999 );
    
por shea 29.10.2012 / 10:23