2015-08-05 1 views
0

У меня есть сайт каталога, поэтому я создал имя типа сообщения «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-адреса.

ответ