@ikoit
Junior FrontEnd

Как исправить ошибку 404, при открытии произвольной записи WP?

Зарегистрировал произвольную запись и таксономию, в файле function.php
Через следующий код:
add_action( 'init', 'register_article_post' );
function register_article_post() {
	register_taxonomy('article_post', array('article'), array(
		'label'                 => 'Раздел статьи', // определяется параметром $labels->name
		'labels'                => array(
			'name'              => 'Разделы статей',
			'singular_name'     => 'Раздел статьи',
			'search_items'      => 'Искать раздел статей',
			'all_items'         => 'Все разделы статей',
			'parent_item'       => 'Родит. раздел статьи',
			'parent_item_colon' => 'Родит. раздел статьи:',
			'edit_item'         => 'Ред. раздел статей',
			'update_item'       => 'Обновить раздел статей',
			'add_new_item'      => 'Добавить раздел статей',
			'new_item_name'     => 'Новый раздел статей',
			'menu_name'         => 'Разделы статей',
		),
		'description'           => 'Рубрики для раздела статей', // описание таксономии
		'public'                => true,
		'show_in_nav_menus'     => false, // равен аргументу public
		'show_ui'               => true, // равен аргументу public
		'show_tagcloud'         => false, // равен аргументу show_ui
		'hierarchical'          => true,
		'rewrite'               => array('slug'=>'article', 'hierarchical'=>false, 'with_front'=>true, 'feed'=>false ),
		'show_admin_column'     => true, // Позволить или нет авто-создание колонки таксономии в таблице ассоциированного типа записи. (с версии 3.5)
	) );

	register_post_type('article', array(
		'label'               => 'Статьи',
		'labels'              => array(
			'name'          => 'Статьи',
			'singular_name' => 'Статья',
			'menu_name'     => 'Статьи',
			'all_items'     => 'Все статьи',
			'add_new'       => 'Добавить статью',
			'add_new_item'  => 'Добавить новую статью',
			'edit'          => 'Редактировать',
			'edit_item'     => 'Редактировать статью',
			'new_item'      => 'Новая статья',
		),
		'description'         => '',
		'public'              => true,
		'publicly_queryable'  => true,
		'show_ui'             => true,
		'show_in_rest'        => false,
		'rest_base'           => '',
		'show_in_menu'        => true,
		'menu_icon'           => 'dashicons-align-left',
		'menu_position'       => 4,
		'exclude_from_search' => false,
		'capability_type'     => 'post',
		'map_meta_cap'        => true,
		'hierarchical'        => false,
		'rewrite'             => true,
		'has_archive'         => 'article',
		'query_var'           => true,
		'supports'            => array( 'title', 'editor' ),
		'taxonomies'          => array( 'article_post' ),
	) );

}

## Отфильтруем ЧПУ произвольного типа
// фильтр: apply_filters( 'post_type_link', $post_link, $post, $leavename, $sample );
add_filter('article_post_link', 'article_permalink', 1, 2);
function article_permalink( $permalink, $post ){
	// выходим если это не наш тип записи: без холдера %products%
	if( strpos($permalink, '%article_post%') === false )
		return $permalink;

	// Получаем элементы таксы
	$terms = get_the_terms($post, 'article_post');
	// если есть элемент заменим холдер
	if( ! is_wp_error($terms) && !empty($terms) && is_object($terms[0]) )
		$term_slug = array_pop($terms)->slug;
	// элемента нет, а должен быть...
	else
		$term_slug = 'no-article_post';

	return str_replace('%article_post%', $term_slug, $permalink );
}

add_filter('excerpt_more', function($more) {
	return '...';
});


И при открытии страницы записи возникает ошибка 404. Меняю настройки постоянных ссылок с "Название записи" на "Простые" и всё начинает работать, но такой вариант не устраивает. Перепробовал уже несколько вариантов. Менял настройки и сбрасывал htaccess. Изменял сам файл htaccess. Не помогает... Подскажите пожалуйста, как исправить данную ошибку?
  • Вопрос задан
  • 43 просмотра
Решения вопроса 1
@ikoit Автор вопроса
Junior FrontEnd
В коде ошибок нету. Ошибка в плагине - "Yoast SEO", а также он автоматически добавлял рекламу на сайт... После его отключения страницы стали открываться без ошибок. Все подробности тут.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы