2015-09-30 8 views
-1

У меня есть тип гороскопа, где у меня есть 4 категории (каждый год, ежемесячный, прекрасный и еженедельный гороскоп). В каждом посте есть 12 редакторов - 12 знаков. Мне нужно, что URL-структуры:Переписывать Wordpress url в CUSTOM POST TYPE

  1. В Ежегодно мне нужен этот URL: http://domain.com/post-type/taxonomy/year
  2. В Monthly мне нужен этот URL: http://domain.com/post-type/taxonomy/month/year
  3. В Симпатично мне нужен этот URL: http://domain.com/post-type/taxonomy/month/year
  4. В Weekly Мне нужен этот адрес: http://domain.com/post-type/taxonomy

В ежегодном году у меня есть много лет, ежемесячно и у меня много лет и много месяцев, еженедельно, только на странице, которые редактируются каждую неделю.

Сначала я считаю, что «таксономия» - это будет родительская категория таксономии, «месяц» - это будет детская категория таксономии и «год» - это будет пост. Но при создании в таксономии одно и то же название категории их слизня стало «месяц-1, месяц-2» и тем же, когда я создаю одно и то же имя в типе post. Так что это решение не работает.

Теперь я хочу создать 4 типа пост и в каждом переписывания URL после типа, как этот:

  1. В Ежегодно мне нужно, что в URL-адрес шоу: http://domain.com/horoscope/post-type/year-of-post не создавать и не тихоход столба
  2. В Ежемесячный и милый мне нужно, что URL-адрес шоу: http://domain.com/horoscope/post-type/month-of-post-create/year-of-post-create/ и не слизняк пост
  3. в еженедельном просто: http://domain.com/horoscope/weekly/
+1

Привет, добро пожаловать в stackoverflow, пожалуйста, взгляните на [это] (http://mattgemmell.com/what-have-you-tried/) и сделайте [тур] (http://stackoverflow.com/тур), если вы хотите помочь, мы здесь, чтобы помочь вам, а не просто кормить вас. – Naruto

+0

может указать, пожалуйста, что случилось с моим сообщением? –

+0

Ну, основная проблема, вы просите код, и вы не показали нам никаких попыток попробовать что-то самостоятельно. – Naruto

ответ

0

Теперь я создаю 4 пост типа и переписать URL с этим кодом:

global $wp_rewrite; 
$kuukausihoroskooppi_structure = '/horoskoopit/kuukausihoroskooppi/%monthnum%/%year%/%kuukausihoroskooppi%'; 
$wp_rewrite->add_rewrite_tag("%kuukausihoroskooppi%", '([^/]+)', "kuukausihoroskooppi="); 
$wp_rewrite->add_permastruct('kuukausihoroskooppi', $kuukausihoroskooppi_structure, false); 
// Add filter to plugin init function 
add_filter('post_type_link', 'kuukausihoroskooppi_permalink', 10, 3); 
// Adapted from get_permalink function in wp-includes/link-template.php 
function kuukausihoroskooppi_permalink($permalink, $post_id, $leavename) { 
$post = get_post($post_id); 
$rewritecode = array(
    '%year%', 
    '%monthnum%', 
    '%day%', 
    '%hour%', 
    '%minute%', 
    '%second%', 
    $leavename? '' : '%postname%', 
    '%post_id%', 
    '%category%', 
    '%author%', 
    $leavename? '' : '%pagename%', 
); 

if ('' != $permalink && !in_array($post->post_status, array('draft', 'pending', 'auto-draft'))) { 
    $unixtime = strtotime($post->post_date); 

    $category = ''; 
    if (strpos($permalink, '%category%') !== false) { 
     $cats = get_the_category($post->ID); 
     if ($cats) { 
      usort($cats, '_usort_terms_by_ID'); // order by ID 
      $category = $cats[0]->slug; 
      if ($parent = $cats[0]->parent) 
       $category = get_category_parents($parent, false, '/', true) . $category; 
     } 
     // show default category in permalinks, without 
     // having to assign it explicitly 
     if (empty($category)) { 
      $default_category = get_category(get_option('default_category')); 
      $category = is_wp_error($default_category) ? '' : $default_category->slug; 
     } 
    } 

    $author = ''; 
    if (strpos($permalink, '%author%') !== false) { 
     $authordata = get_userdata($post->post_author); 
     $author = $authordata->user_nicename; 
    } 

    $date = explode(" ",date_i18n('Y F d H i s', $unixtime)); 
    $rewritereplace = 
     array(
      $date[0], 
      $date[1], 
      $date[2], 
      $date[3], 
      $date[4], 
      $date[5], 
      $post->post_name, 
      $post->ID, 
      $category, 
      $author, 
      $post->post_name, 
     ); 
    $permalink = str_replace($rewritecode, $rewritereplace, $permalink); 
} else { // if they're not using the fancy permalink option 
} 
return $permalink; 
} 

Для Годового типа поста я не нужен% monthum% в моих URL так что в этом типе поста в коде:

$kuukausihoroskooppi_structure = '/horoskoopit/kuukausihoroskooppi/%monthnum%/%year%/%kuukausihoroskooppi%'; 

Я удаляю% month%/и этот пост работает хорошо с URL-адресом http://domain.com/horoscope/post_type/year_of_post/post_slug с шаблоном: single-post_type.php Но мне не нужно post-slug, поэтому я удаляю% kuukausihoroskooppi%, но тогда эта страница отображается как архив. PHP;

Но тип публикации Ежемесячный и Милый URL-адрес с% monthum% перенаправляется на страницу 404 и не отображается.

Что лучше делать?