web-dev-qa-db-fra.com

Comment rendre les pages slug prioritaires sur toutes les autres taxonomies telles que custom-post, post ou category

J'utilise WordPress en tant que CMS.

Je dois montrer la page au lieu de la catégorie quand ils ont même slug.

  • J'ai la catégorie appelée "centres d'usinage verticaux" avec le slug "centres d'usinage verticaux"

Cette catégorie se classe dans la deuxième page de Google et je souhaite optimiser davantage. Alors je crée une page ..

Donc, comme vous le voyez, la page et la catégorie ont le même slug.

Lorsque j'écris www.xx.com/vertical-machining-centers, la page de catégorie s'ouvre, je vérifie également auprès de monkeyman-rewrite-analyzer qu'il montre que le slug de catégorie est d'un rang supérieur.

J'ai besoin de faire wordpress pour afficher la page au lieu de la catégorie quand ils ont la même limace.

Y at-il un plugin ou un moyen de le faire sans écrire de code.

Merci....

6
sahin

Vous devrez activer les règles de page verbeuses , qui permettent de s'assurer que toutes les pages sont explicitement définies (au lieu d'utiliser une règle générique). Mais en plus de cela, vous devez déplacer ces règles de page au-dessus des règles de taxonomie. C'est un changement assez récent }, je crois que c'était entre 3.0 et 3.1.

J'explique comment faire ceci dans cette réponse à une question très liée . Ensemble, c'est ce code:

add_action( 'init', 'wpse16902_init' );
function wpse16902_init() {
    $GLOBALS['wp_rewrite']->use_verbose_page_rules = true;
}

add_filter( 'page_rewrite_rules', 'wpse16902_collect_page_rewrite_rules' );
function wpse16902_collect_page_rewrite_rules( $page_rewrite_rules )
{
    $GLOBALS['wpse16902_page_rewrite_rules'] = $page_rewrite_rules;
    return array();
}

add_filter( 'rewrite_rules_array', 'wspe16902_prepend_page_rewrite_rules' );
function wspe16902_prepend_page_rewrite_rules( $rewrite_rules )
{
    return $GLOBALS['wpse16902_page_rewrite_rules'] + $rewrite_rules;
}
12
Jan Fabry

j'ai le même problème que toi.

Mon correctif était celui-là, mais pour mon cas, j'utilise Visual Composer dans la création de page. C'est important car ma méthode ne portera que le contenu de la page.

Au lieu de changer la priorité, j'ai changé le modèle de catégorie pour cette catégorie!

Alors .. créez la page que vous voulez définir comme catégorie et notez l'ID (par exemple 86292).

Si votre catégorie a un ID d'annonce (comme dans l'exemple 35), vous pouvez créer un modèle de catégorie personnalisé en copiant le fichier archive.php et en le renommant en catégorie-35.php.

Inside .. effacez chaque blogloop et définissez-le comme contenu:

    $p = get_post(86292); 
    echo do_shortcode($p->post_content);

Désormais, chaque modification apportée à la publication (qui peut rester en mode brouillon) sera reflétée dans la catégorie: D

Une ou deux notes ...

Toutes les informations personnalisées (telles que SEO, css personnalisé, etc.) ne seront pas portées! Seul le contenu de l'éditeur.

Si vous souhaitez définir un css personnalisé, vous devez utiliser la balise à l'intérieur du fichier category-x.php.

1
Matteo Morreale