Волшебные поля (пользовательские типы записей) и постоянная ссылка на пользовательскую таксономию - PullRequest
1 голос
/ 09 февраля 2011


Я использую Пользовательский шаблон сообщения , который я связал с Волшебные поля , чтобы создать пользовательский тип сообщения с именем Компания .
Я также создал пользовательскую таксономию с именем Город . Город является иерархическим (подобно категориям), и в каждой компании выбран один город.

Например:
У меня есть компания с названием должности Microsoft и выбранной городской таксономией Redmond. Я хочу, чтобы мои постоянные ссылки выглядели так:
http://www.mysite.com/Redmond/Microsoft

Точно так же, как если у вас есть категория постов и WordPress добавляет первую категорию, выбранную для вашей постоянной ссылки.
Можно ли это сделать?

Ответы [ 2 ]

1 голос
/ 10 февраля 2011

Я нашел решение этой проблемы. Вот код:

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

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

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

    // Get taxonomy terms
    $terms = wp_get_object_terms($post->ID, 'mba_courses'); 
    if (!is_wp_error($terms) && !empty($terms) && is_object($terms[0])) $taxonomy_slug = $terms[0]->slug;
    else $taxonomy_slug = 'mba_courses';

return str_replace('%mba_courses%', $taxonomy_slug, $permalink);
}
0 голосов
/ 09 февраля 2011

Я не пробовал комбинацию плагинов, которую вы упомянули, но "обычно", постоянная ссылка, которую вы хотите, может быть достигнута только с помощью списков категорий ИЛИ страниц.То, что вы хотите, это что-то вроде: http://blogurl.com/categoryname/blogpostname И это не происходит в WordPress.

Ваши варианты: http://blogurl.com/parentpage/childpage или http://blogurl.com/parentcategory/childcategory

...