Estou desenvolvendo um site de carros que tem showrooms. Cada showroom precisa de seu próprio URL personalizado com base em sua localização. O local (Cidade e Condado / Estado) já está inserido como dois campos personalizados. Então, por exemplo, se for "Showroom A", localizado em Liverpool, Merseyside, sua URL seria a seguinte: -
enlace
Eu tenho um tipo de postagem personalizado de "Showroom", que tem suas regras de reescrita definidas como false (embora tenha sido definido anteriormente como true anteriormente no teste). No entanto, quando eu crio a postagem em questão, há um problema. O permalink é dado como tudo BAR o nome do showroom (ou seja, enlace ). Visting this URL causa um erro 404, e até mesmo adicionando "showroom-a" (por exemplo) ao final do código (http://www.domain.com/location/merseyside/liverpool/showroom-a/), também causa um erro 404. Aqui está o meu código.
function add_rewrite_rules()
{
// Register custom rewrite rules
global $wp_rewrite;
$wp_rewrite->add_rewrite_tag('%showroom%', '([^/]+)', 'showroom=');
$wp_rewrite->add_rewrite_tag('%post_custom_data%', '([^/]+)', 'post_custom_data=');
$wp_rewrite->add_permastruct('showroom', 'location/%post_custom_data%', false);
}
function permalinks($permalink, $post, $leavename)
{
$no_data = 'no-data';
$post_id = $post->ID;
if($post->post_type != 'showroom' || empty($permalink) || in_array($post->post_status, array('draft', 'pending', 'auto-draft')))
return $permalink;
$state = sanitize_title_with_dashes(get_post_meta($post_id, 'state', true));
$city = sanitize_title_with_dashes(get_post_meta($post_id, 'city', true));
$data = $state . "/" . $city;
if(!$data)
$data = $no_data;
$permalink = str_replace('%post_custom_data%', $data, $permalink);
return $permalink;
}
add_action('init', 'add_rewrite_rules');
add_filter('post_type_link', 'permalinks', 10, 3);
Qualquer ideia ou ajuda seria apreciada:)