it-swarm.com.de

Ändern Sie benutzerdefinierte Umschreibregeln für Beitragstypen in einer separaten Funktion

Ich möchte die Umschreiberegeln für den benutzerdefinierten Beitragstyp tribe_events ändern, der als Beitragstyp in den Kern-Plug-in-Dateien "The Events Calendar" (the-events-calendar.class, Zeile 24) registriert ist:

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

Was ich tun möchte, ist die Zeile zu ändern:

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

Zu:

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

Wobei "% lugares%" der Name einer benutzerdefinierten Taxonomie ist.

Dann ist mein Plan, die folgende Funktion zu verwenden, um den Umschreibungsprozess abzuschließen:

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

Das Problem ist, dass ich die Kern-Plugin-Dateien nicht ändern möchte. Gibt es eine Möglichkeit, das Umschreibe-Argument für benutzerdefinierte Posts in einer separaten Funktion innerhalb der functions.php meines Themas zu ändern?

Vielen Dank!

4
j-man86

Ja, ich glaube du kannst. Fügen Sie diesen Code in die functions.php-Datei Ihres Themas ein:

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