Как для определённых меток изменить структуру постоянных ссылок записей

Гость | 21 августа 2017, 19:44 | 1

Допустим, у записей структура http://example.com/postname.
Мне нужно для записей, имеющих определённые метки, изменить структуру ЧПУ http://example.com/post_id-postname. Как этого добиться?


Wordpress

Решения

add_action( 'pre_post_link', 'wppw_rewrite_surf_news', 10, 3 );

function wppw_rewrite_surf_news( $permalink, $post, $leavename ) {

	$tags = [3, 4, 5 ]; // Нужные нам ID меток
	$terms = get_the_tags( $post );


	foreach ( $terms as $term ) {


		if ( in_array( $term->term_id, $tags ) ) {


			$post_type = 'post';
			$permalink = "/%post_id%-%postname%/";

			$args = array(
				'with_front' => false,
				'paged' => true,
				'ep_mask' => EP_NONE,
				'feed' => false,
				'forcomments' => false,
				'walk_dirs' => false,
				'endpoints' => false,
			);

			global $wp_rewrite;
			$wp_rewrite->add_permastruct( $post_type, $permalink, $args );
		}
	} unset( $term );

	return $permalink;
}

После не забудьте обновить структуру ссылок в панели администратора WordPress в НастройкиПостоянные ссылки