Intereting Posts
Показать похожие позиции портфолио? Как создать динамическое значение в WP_Query meta_query Как я могу подключиться к созданию нового сообщения и выполнить wp_die (), прежде чем сообщение будет вставлено в базу данных? Несколько экземпляров данных в таблице пользовательских таблиц плагинов при активации плагина Улучшение запросов wpdb с большими данными Как добавить пользовательский контент в строку плагина в список плагинов для WordPress? Shortcode с атрибутом пользовательского контента? Страница, созданная с URL-адресом блога, перенаправляется на страницу сообщений, как мне это остановить? Сохранять форматирование таблиц, скопированных из MS Word? Запросить сообщения между двумя датами (пользовательские мета-ключи) CMB2 получить the_title_attribute по id Выход из системы перенаправления, а также перенаправление WP-login.php Добавить категории в пользовательский тип сообщения, не работающий Где находится файл php профиля профиля одного члена (BuddyPress) Вставить HTML5 файлы / подпапки в сообщении?

Постоянная ссылка на таксономию

С моим сайтом я работаю с собственной таксономией. И я хочу, чтобы таксономия была интегрирована с постоянной ссылкой. Поэтому, если на странице новостей есть таксономия, постоянная ссылка меняется.

Например: mysite.com/%custom_tax%/blog/%postname% И если это страница: mysite.com/%custom_tax%/%postname%

Но если нет таксономии, я хочу: mysite.com/blog/%postname% И если это страница: mysite.com/%postname%

Как я могу это сделать?

Я уже настроил% custom_tax%:

add_filter('post_link', 'custom_tax_permalink', 10, 3); add_filter('post_type_link', 'custom_tax_permalink', 10, 3); function custom_tax_permalink($permalink, $post_id, $leavename) { if (strpos($permalink, '%custom_tax%') === FALSE) return $permalink; // Get post $post = get_post($post_id); if (!$post) return $permalink; // Get taxonomy terms $terms = wp_get_object_terms($post->ID, 'custom_tax'); if (!is_wp_error($terms) && !empty($terms) && is_object($terms[0])) $taxonomy_slug = $terms[0]->slug; else $taxonomy_slug = ''; flush_rewrite_rules(); return str_replace('%custom_tax%', $taxonomy_slug, $permalink); } 

Solutions Collecting From Web of "Постоянная ссылка на таксономию"

Попробуйте что-то вроде этого:

 function custom_rewrite( $wp_rewrite ) { $feed_rules = array( '(.+)/blog/(.+)' => 'index.php?custom_tax='.$wp_rewrite->preg_index(1).'&post_name=' . $wp_rewrite->preg_index(2) ); // ( array merge must be done this way, to ensure new rule comes first ) $wp_rewrite->rules = $feed_rules + $wp_rewrite->rules; } // refresh/flush permalinks in the dashboard if this is changed in any way add_filter( 'generate_rewrite_rules', 'custom_rewrite' ); 

Не забудьте обновить постоянные ссылки, посетив страницу постоянных ссылок и повторно сохранив, если вы добавите / измените этот код. Также удалите flush_rewrite_rules(); как советует Стивен, это ненужная и плохая практика.