I'm trying to rewrite my permalinks using meta data from my post. The permalink rewrite works fine but I'm getting the 404 error when I try to view the post.

Could someone offer a clue as to why this wouldn't work?

add_action('init', 'new_rewrite');
function new_rewrite(){
   add_rewrite_tag("%mls%", '([a-zA-Z0-9])');

add_filter('post_link', 'mls_permalink', 10, 3);
add_filter('post_type_link', 'mls_permalink', 10, 3);

function mls_permalink($permalink, $post_id, $leavename) {
    if (strpos($permalink, '%mls%') === FALSE) return $permalink;

    $post = get_post($post_id);
    if (!$post) return $permalink;

    $mls = get_post_meta($post->ID, 'mls_number', true );
    if (!is_wp_error($mls) && !empty($mls)) $mls_slug = $mls;
    else $mls_slug = '';

    return str_replace('%mls%', $mls_slug, $permalink);

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.