Estoy desarrollando un sitio de autos que tiene salas de exhibición. Cada sala de exposición necesita su propia URL personalizada basada en su ubicación. La ubicación (Ciudad y Condado / Estado) ya está insertada como dos campos personalizados. Así, por ejemplo, si es "Showroom A", ubicado en Liverpool, Merseyside, su URL sería la siguiente: -
Tengo un tipo de publicación personalizada de "Showroom", que tiene reglas de reescritura configuradas en falso (aunque anteriormente estaba configurada como verdadera antes en la prueba). Sin embargo, cuando creo la publicación en cuestión, hay un problema. El enlace permanente se entrega con el nombre de la sala de exposición (por ejemplo, enlace ). Ver esta URL provoca un error 404, e incluso agregar "showroom-a" (por ejemplo) al final del código (http://www.domain.com/location/merseyside/liverpool/showroom-a/), también causa un error 404 Aquí está mi 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);
Cualquier idea o ayuda sería apreciada :)