web-dev-qa-db-fra.com

réécrit get paramètre avec type de message personnalisé

J'essaie maintenant pendant quelques jours de résoudre le problème suivant:

J'ai un type de message personnalisé appelé gallery. J'ai besoin de l'URL

http://example.com/gallery/FOOBAR

être analysé comme

http://example.com/gallery/?param=FOOBAR

Le paramètre Permalink pour le type de publication personnalisé est:

/gallery/%postname%/%year%/%monthnum%/%day%/

Je pense avoir essayé tous les codes que j'ai pu trouver pour résoudre ce problème, mais rien ne semble fonctionner.
Si je vide toutes les réécritures, aucun de mes liens ne fonctionne plus (404)

Est-ce même possible?

4
user21036

Je pense que ça devrait marcher. Vous devez d’abord enregistrer votre règle de réécriture et le paramètre:

function my_init() {
    add_rewrite_rule(
        'gallery/(.+?)/?$',
        'index.php?post_type=gallery&param=$matches[1]',
        'top' );
    add_rewrite_tag('%param%','([^&]+)');
}
add_action('init', 'my_init');

Ensuite, vous pouvez lire la valeur du paramètre à partir de la requête:

$param = get_query_var('param');

N'oubliez pas de vider les réécritures. (il suffit de regarder la page des paramètres de réécriture pour vider les règles)

3
Parham