web-dev-qa-db-fra.com

Réécrire le type de message slug uniquement pour le thème enfant

Je suis dans un multisite où certains blogs partagent le même thème parent pour des raisons de maintenance. Tous mes extraits sont issus de ce thème parent, mais j'aimerais beaucoup que l'un des blogs comporte un masque d'URL.

J'ai trouvé cette réponse très utile pour changer les libellés, mais j'ai essayé de faire de même et d'affecter un slug différent à $wp_post_types[$post_type]->rewrite['slug']. tableau de réécriture entier à NULL.

J'ai aussi essayé .htacces avec RewriteRule ^/newslug$ /oldslug [L] mais sans succès.

Y a-t-il une manière propre de faire ceci?

1
moraleida

Rendre le slug traduisible lorsque vous enregistrez le type de message personnalisé:

register_post_type( 
    'post_type_name', 
    array (
        'rewrite' => array (
            'slug' => _x( 'post_type_name', 'URL slug', 'your_text_domain' )
        )
    )
);

Créez ensuite un petit plugin pour le site sur lequel vous souhaitez modifier le slug:

add_filter( 'gettext_with_context', 'change_my_slug', 10, 4 );

function change_my_slug( $translation, $text, $context, $domain )
{
    if ( 'URL slug' !== $context or 'post_type_name' !== $text or 'your_text_domain' !== $domain )
        return $translation;

    return 'changed-slug';
}
1
fuxia