У меня есть сайт каталога, поэтому я создал имя типа сообщения «ads
», а их заголовок сообщения - это номера телефонов, но я хочу, чтобы постоянные ссылки вместо mysite.com/ads/post_title
Я хочу это mysite.com/post_meta_city/post_title
и вот мой код:custom Permalinks with Post Meta Value, другие страницы возвращаются только на домашнюю ошибку
function ads_add_rewrite_rules(){
global $wp_rewrite;
$wp_rewrite->add_rewrite_tag('%post_ads_city%', '([^/]+)', 'post_ads_city=');
$wp_rewrite->add_rewrite_tag('%ads%', '([^/]+)', 'ads=');
$wp_rewrite->add_permastruct('ads', '%post_ads_city%/%ads%', false);
}add_action('init', 'ads_add_rewrite_rules');
function ads_permalink($permalink, $post, $leavename)
{
if ($post->post_type != 'ads' || empty($permalink) || in_array($post->post_status, array('draft', 'pending', 'auto-draft'))){
return $permalink;
}else{
$no_data = 'no-city';
$post_id = $post->ID;
$var1 = get_post_meta($post_id, 'post_ads_city', true);
$var1 = sanitize_title($var1);
if(!$var1) {
$var1 = $no_data;
}
//$permalink = str_replace('?ads=', $var1."/", $permalink);
$permalink = str_replace('%post_ads_city%', $var1, $permalink);
return $permalink;
}
}add_filter('post_type_link', 'ads_permalink', 10, 3);
Да я достичь URL, что я хочу, но проблема в том, когда я посещаю другие страницы на моем сайте, он возвращает только главную страницу, там далеко, чтобы исправить это? не добавляя что-то жестко закодированное в добавлении permastruct? пожалуйста помоги.
Кстати, сайт, на котором я работаю, имеет существующий сайт, поэтому важно сохранить URL-адреса.