• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Wordpress: CategoryLink verändern

CodeMan1

Neues Mitglied
Ich habe ein Problem mit einem Wordpress Theme (MaxMag2.0). Ich habe eigene Seiten angelegt, die ich als jeweilige Kategorie-Hauptseite nutzen möchte. Der gewählte Seitentitel entpsricht jeweils dem "Slug" der angelegten eigentlichen Kategorien.

In den Crumbs steht dann beispielsweise:

Startseite -> Handwerk -> Fliesen legen macht Spass

Der Link "Handwerk" wird so dargestellt:
http://www.domain.de/category/handwerk

Ich möchte aber, dass das "category" aus dem Link verschwindet, damit man zu den selbst angelegten Kategorieseiten kommt.

Möchte noch erwähnen, dass ich ein ähnliches Problem in einem Widget gut alleine lösen konnte, in dem ich diesen Teil noch in die functions eingebaut habe:

Code:
function get_cat_slug($cat_id) {
    $cat_id = (int)$cat_id;
    $category = &get_category($cat_id);
    return $category->slug;
}

Wie kann ich das lösen?

Ich kopiere mal einen Teil aus der functions.php hier rein:

PHP:
/////////////////////////////////////
// Add Bread Crumbs
/////////////////////////////////////

if ( ! function_exists( 'dimox_breadcrumbs' ) ) {
function dimox_breadcrumbs() {

  $showOnHome = 0; // 1 - show breadcrumbs on the homepage, 0 - don't show
  $delimiter = '   >   '; // delimiter between crumbs
  $home = 'Home'; // text for the 'Home' link
  $showCurrent = 1; // 1 - show current post/page title in breadcrumbs, 0 - don't show
  $before = '<span class="current">'; // tag before the current crumb
  $after = '</span>'; // tag after the current crumb

  global $post;
  $homeLink = home_url();

  if (is_home() || is_front_page()) {

    if ($showOnHome == 1) echo '<div id="crumbs"><a href="' . $homeLink . '">' . $home . '</a></div>';

  } else {

    echo '<div id="crumbs"><a href="' . $homeLink . '">' . $home . '</a> ' . $delimiter . ' ';

    if ( is_category() ) {
      $thisCat = get_category(get_query_var('cat'), false);
      if ($thisCat->parent != 0) echo get_category_parents($thisCat->parent, TRUE, ' ' . $delimiter . ' ');
      echo $before . single_cat_title('', false) . $after;

    } elseif ( is_search() ) {
      echo $before . 'Search results for "' . get_search_query() . '"' . $after;

    } elseif ( is_day() ) {
      echo '<a href="' . get_year_link(get_the_time('Y')) . '">' . get_the_time('Y') . '</a> ' . $delimiter . ' ';
      echo '<a href="' . get_month_link(get_the_time('Y'),get_the_time('m')) . '">' . get_the_time('F') . '</a> ' . $delimiter . ' ';
      echo $before . get_the_time('d') . $after;

    } elseif ( is_month() ) {
      echo '<a href="' . get_year_link(get_the_time('Y')) . '">' . get_the_time('Y') . '</a> ' . $delimiter . ' ';
      echo $before . get_the_time('F') . $after;

    } elseif ( is_year() ) {
      echo $before . get_the_time('Y') . $after;

    } elseif ( is_single() && !is_attachment() ) {
      if ( get_post_type() != 'post' ) {
        $post_type = get_post_type_object(get_post_type());
        $slug = $post_type->rewrite;
        echo '<a href="' . $homeLink . '/' . $slug['slug'] . '/">' . $post_type->labels->singular_name . '</a>';
        if ($showCurrent == 1) echo ' ' . $delimiter . ' ' . $before . get_the_title() . $after;
      } else {
        $cat = get_the_category(); $cat = $cat[0];
        $cats = get_category_parents($cat, TRUE, ' ' . $delimiter . ' ');
        if ($showCurrent == 0) $cats = preg_replace("#^(.+)\s$delimiter\s$#", "$1", $cats);
        echo $cats;
        if ($showCurrent == 1) echo $before . get_the_title() . $after;
      }

    } elseif ( !is_single() && !is_page() && get_post_type() != 'post' && !is_404() ) {
      $post_type = get_post_type_object(get_post_type());
      echo $before . $post_type->labels->singular_name . $after;

    } elseif ( is_attachment() ) {
      $parent = get_post($post->post_parent);
      $cat = get_the_category($parent->ID); $cat = $cat[0];
      echo get_category_parents($cat, TRUE, ' ' . $delimiter . ' ');
      echo '<a href="' . get_permalink($parent) . '">' . $parent->post_title . '</a>';
      if ($showCurrent == 1) echo ' ' . $delimiter . ' ' . $before . get_the_title() . $after;

    } elseif ( is_page() && !$post->post_parent ) {
      if ($showCurrent == 1) echo $before . get_the_title() . $after;

    } elseif ( is_page() && $post->post_parent ) {
      $parent_id  = $post->post_parent;
      $breadcrumbs = array();
      while ($parent_id) {
        $page = get_page($parent_id);
        $breadcrumbs[] = '<a href="' . get_permalink($page->ID) . '">' . get_the_title($page->ID) . '</a>';
        $parent_id  = $page->post_parent;
      }
      $breadcrumbs = array_reverse($breadcrumbs);
      for ($i = 0; $i < count($breadcrumbs); $i++) {
        echo $breadcrumbs[$i];
        if ($i != count($breadcrumbs)-1) echo ' ' . $delimiter . ' ';
      }
      if ($showCurrent == 1) echo ' ' . $delimiter . ' ' . $before . get_the_title() . $after;

    } elseif ( is_tag() ) {
      echo $before . 'Posts tagged "' . single_tag_title('', false) . '"' . $after;

    } elseif ( is_author() ) {
       global $author;
      $userdata = get_userdata($author);
      echo $before . 'Articles posted by ' . $userdata->display_name . $after;

    } elseif ( is_404() ) {
      echo $before . 'Error 404' . $after;
    }

    if ( get_query_var('paged') ) {
      if ( is_category() || is_day() || is_month() || is_year() || is_search() || is_tag() || is_author() ) echo ' (';
      echo __('Page') . ' ' . get_query_var('paged');
      if ( is_category() || is_day() || is_month() || is_year() || is_search() || is_tag() || is_author() ) echo ')';
    }

    echo '</div>';

  }
}
} // end dimox_breadcrumbs()
 
Mit den Permalinks geht so nicht.

Das Plugin funktioniert an sich wunderbar! Problem ist nur, dass da nun quasi zwei Seiten auf dem selben URL-Pfad liegen. Einmal meine selbst erstellte Übersichtseite für eine Kategorie und einmal die vom Theme automatisch generierte Kategorieseite.
Leider wird beim Aufruf des Links dann auch die "falsche" Seite angezeigt.

Könnte ich denn generell das erstellen von Kategorieseite verhindern? Das würde das Problem auch lösen... An welcher Stelle muss ich da gucken?
 
Sorry mein Fehler.

Permalinks:
1.) permalink structure to /%category%/%postname%/
2.) category base to ./

Sollte eigentlich klappen, tut es zumindest bei meinem Projekten...

Was genau meinst du mit erstellen von Kategorie Seiten?

Grüße & Nacht
 
Zurück
Oben