web-dev-qa-db-fra.com

Réécrire les règles pour les types d'articles personnalisés

J'ai donc créé un nouveau type de message 'quote'.
En gros, je veux changer toutes les URL de citations en domain.com/quotes/ID car, à l'heure actuelle (/?quote={xxx}), cela pourrait être assez long, et comme ce type de message est basé sur l'utilisateur, je ne le fais pas. ne veux pas prendre de risques.

Alors j'ai essayé de chercher des réponses ... J'ai trouvé un très bon tutoriel qui semblait fonctionner partiellement. Les URL ont changé, mais je reçois depuis une erreur 404 page not found.
Ensuite, j'ai essayé de chercher des solutions. J'en ai essayé quelques-unes, telles que l'ajout de flush_rewrite_rules(), l'ouverture de la page de permaliens dans wordpress admin et la pression de "enregistrer", le changement de code et le slug dans l'attribut rewrite du type de message. Comme vous pouvez le deviner, rien n'a fonctionné.

function my_custom_post_type() {
    $labels = array(
              // too long
    );
    $args = array(
        'labels'        => $labels,
        'description'   => 'Holds our quotes and quotes specific data',
        'public'        => true,
        'menu_position' => 5,
        'capability_type' => 'post',
        'publicly_queryable' => true,
        'supports'      => array( 'editor', 'comments' ),
        'has_archive'   => true,
        'rewrite'   => false,
        'query_var'     => true,
    );

    register_post_type( 'quote', $args );
    flush_rewrite_rules();  //one of the solutions I found

    global $wp_rewrite;
    $projects_structure = '/quotes/%post_id%';
    $wp_rewrite->add_rewrite_tag("%quote%", '([^/]+)', "quote=");
    $wp_rewrite->add_permastruct('quote', $projects_structure, false);

    add_filter('post_type_link', 'quote_permalink', 10, 3); //translate the structure variables.
}

add_action( 'init', 'my_custom_post_type' );

En bref, je suis transféré à /quotes/ID/, mais la page génère une erreur 404.
J’ai essayé de chercher des réponses, mais rien ne fonctionnait vraiment pour moi.
Espérons que quelqu'un puisse identifier le problème.

1
Asaf

Je crois que cet article peut vous aider.

http://vocecommunications.com/blog/2010/11/adding-rewrite-rules-for-custom-post-types/

Je pense que ce qui vous manque, c'est dans la troisième section, où elle crée une règle de redirection (je pense que votre site ne redirige pas correctement, car il manque une règle pour le faire ...)

1
jfacemyer