Wordpress - Ошибка типа пользовательской записи и пользовательских структур постоянных ссылок - PullRequest
0 голосов
/ 25 марта 2011

У меня есть 3 настраиваемых типа записей, и я создал собственную структуру постоянных ссылок для каждого.Проблема, с которой я сталкиваюсь, заключается в том, что третий настраиваемый тип записи, который я настроил с помощью постоянной ссылки, используется для предыдущих 2.

Пример:

  • Классифицировано
  • Занятость
  • Спонсорство

Выше приведены типы сообщений, и для меня настроена постоянная структура постоянных ссылок (для каждого): / post_type / post_id /

Теперь вышеприведенный порядок - это порядок, в котором они установлены, и спонсорство берет на себя все из них.Например:

/classified/100/
/employment/101/
/sponsorship/102/

Все вышеизложенное использует постоянную ссылку:

/sponsorship/100/
/sponsorship/101/
/sponsorship/102/

Что я делаю неправильно, чтобы эта ошибка произошла?Это ошибка структуры постоянной ссылки?ниже приведен мой код, который я использую для создания пользовательских структур постоянных ссылок для каждого из них.Единственное отличие состоит в том, что% c_id% изменяется на% e_id% и% s_id% для объявлений, занятости и спонсорства.А также любая ссылка на «объявления» меняется на занятость и спонсорство соответственно.

add_action('init', 'classifieds_rewrite');
function classifieds_rewrite() {
    global $wp_rewrite;

    $queryarg = 'post_type=classifieds&p=';
    $wp_rewrite->add_rewrite_tag('%c_id%', '([^/]+)', $queryarg);
    $wp_rewrite->add_permastruct('classifieds', '/classifieds/%c_id%/', false);
}

add_filter('post_type_link', 'classifieds_permalink', 1, 3);
function classifieds_permalink($post_link, $id = 0) {
    global $wp_rewrite;
    $post = &get_post($id);
    if ( is_wp_error( $post ) )
        return $post;
    $newlink = $wp_rewrite->get_extra_permastruct('classifieds');
    $newlink = str_replace("%c_id%", $post->ID, $newlink);
    $newlink = home_url(user_trailingslashit($newlink));
    return $newlink;
}

Спасибо за помощь!:)

1 Ответ

2 голосов
/ 25 марта 2011

Если я правильно понимаю, вы зарегистрировали 3 разных типа постов и пытаетесь переписать каждый тип поста так, чтобы их слаг предшествовал идентификатору поста.Начнем с только слагов каждого типа поста, не похоже, что вы переписываете при регистрации каждого типа поста, это правильно?Если нет, вы можете позаботиться об этой части, добавив следующее с другими аргументами при регистрации каждого типа записи.

'rewrite' => array( 'slug' => 'classified', 'with_front' => true )

Дополнительная ссылка с расширенной постоянной ссылкой переписывается здесь: http://shibashake.com/wordpress-theme/wordpress-permalink-add

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...