Как сделать так, чтобы страницы slug имели приоритет над любыми другими таксономиями, такими как пользовательская публикация, публикация или категория


Я использую WordPress в качестве CMS.

Мне нужно показать страницу вместо категории, когда у них один и тот же слизняк.

  • У меня есть категория под названием "вертикальные обрабатывающие центры" с надписью "вертикальные обрабатывающие центры"

Эта категория занимает второе место на второй странице в Google, и я хочу больше оптимизировать. Поэтому я создаю страницу..

Итак, как вы видите, страница и категория имеют один и тот же слизняк.

Когда я пишу www.xx.com/vertical-machining-centers , открывается страница категории, я также проверяю ее с помощью анализатора monkeyman-rewrite, он показывает, что категория slug имеет более высокий ранг.

Мне нужно сделать так, чтобы wordpress показывал страницу вместо категории, когда у них один и тот же слиток.

Есть ли какой-либо плагин или какой-либо способ сделать это без написания кода.

Спасибо....

Author: sahin, 2011-07-08

2 answers

Вам нужно будет включить подробные правила страниц , которые гарантируют, что все страницы определены явно (вместо использования общего правила). Но в дополнение к этому вам нужно переместить эти правила страницы выше правил таксономии. Это довольно недавнее изменение, я полагаю, что это было между 3.0 и 3.1.

Я объясняю, как это сделать в этом ответе на очень связанный вопрос. Вместе это такой код:

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;
}
 13
Author: Jan Fabry, 2017-04-13 12:37:52

У меня была та же проблема, что и у тебя.

Это было мое исправление, но в моем случае я использую Visual Composer при создании страниц. Это важно, потому что мой метод будет переносить только часть содержимого страницы.

Вместо того, чтобы менять приоритет, я изменил шаблон категории для этой категории!

Итак.. создайте страницу, которую вы хотите установить в качестве категории, и обратите внимание на идентификатор (например, 86292).

Если у вашей категории есть идентификатор объявления (например, 35), вы можете создать пользовательский шаблон категории путем копирования archive.php и переименовав его в category-35.php .

Внутри.. удалите все блоглупы и установите это в качестве содержимого:

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

Теперь каждое изменение, внесенное вами в публикацию (которое может остаться черновиком), будет отражено в категории:D

Одна или две заметки...

Любая пользовательская информация (например, SEO, пользовательский css и т.д.) НЕ БУДЕТ ПЕРЕНЕСЕНА! Только содержимое редактора.

Если вы хотите установить какой-либо пользовательский css, вы должны использовать тег внутри category-x.php .

 1
Author: Matteo Morreale, 2016-01-18 19:34:55