Kategorien und Tags geben 404 in der Seitenleiste zurück, wenn hässliche Permalinks verwendet werden

Ich benutze “hässliche” Permalinks und sie sind in index.php und single.php in Ordnung. Ich habe auch eine Vorlage namens sidebar.php, die eine Seitenleiste erstellt, wenn auf der Artikel / Post-Ebene. Wenn ich auf Kategorien und Tags in der Seitenleiste klicke, werde ich dann mit einem 404 zurückgegeben. Das tatsächliche Format ist:

http: // localhost / mywebsite / tag / mytag

http: // localhost / meineWebsite / Kategorie / MeineKategorie

Im Gegensatz zu dem, was ich für hässliche Permalinks erwarte (und es in index.php und single.php zeigt):

http: // localhost / meineWebsite /? tag = 1

http: // localhost / meineWebsite /? cat = 3

Meine Tags sind wie folgt definiert:

function printTags($tags){ if ($tags!=false) { $return = ''; foreach ($tags as $i){ $return .= '
  • slug . '">' . $i->name . '
  • '; } return $return; } } function getTags($tagData){ $tagArray = []; if($tagData!=false){ foreach ($tagData as $i){ array_push($tagArray, $i->name); } } return $tagArray; }

    Mein HTML / PHP ist wie folgt:

     function newSuggestion($itemTitle, $sectionSlug, $section, $image, $url, $tags){ echo "
  • No Image
      ". printTags($tags) ."
  • "; }

    Wo gehe ich falsch?

    Vielen Dank

    EDIT1:

    Hier ist meine function getPosts aus sidebar.php:

      function getPosts($posts, $numSuggestion){ foreach ( $posts as $post ) { if ($post->ID!=get_the_ID() && $GLOBALS['currentSuggestion']ID, $GLOBALS['$alreadySuggested'])){ $imageUrl = wp_get_attachment_url( get_post_thumbnail_id($post->ID)); if ($imageUrl == false){ $imageUrl = getDefaultImage(); } newSuggestion($post->post_title, get_the_category($post->ID)[0]->slug, get_the_category($post->ID)[0]->name, $imageUrl, get_permalink($post->ID), get_the_tags($post->ID)); $GLOBALS['currentSuggestion']++; array_push($GLOBALS['$alreadySuggested'], $post->ID); } } } 

    EDIT2:

    Ich habe das versucht:

      

    Aber ohne Erfolg, ist das die richtige Richtung. Wo mache ich die Änderung, um die URL der Kategorie im Format “home_url / category /? Cat = 123” zu erhalten?

    EDIT3:

    Ich bin mir nicht sicher, ob ich in die richtige Richtung gehe, aber ich habe es geschafft, die richtige URL zu bekommen, allerdings gibt es eine 404 zurück (im Gegensatz zu Kategorien auf Artikel / Home-Ebene)

    Ich habe die getPosts-function so geändert, dass get_the_category der cat_ID und nicht dem Slug zugeordnet ist (ich bin mir nicht sicher, ob das der richtige Ansatz ist):

      newSuggestion($post->post_title, get_the_category($post->ID)[0]->cat_ID, get_the_category($post->ID)[0]->name, $imageUrl, 

    dann hat meine neue Suggestion-function:

       

    Irgendeine Idee, warum ich immer noch eine 404 treffe, während die gleiche URL in anderen Teilen der Seite funktioniert (zB home / index oder article)?

    EDIT4:

    Ich habe endlich die Kategorien, die damit arbeiten:

      

    Solutions Collecting From Web of "Kategorien und Tags geben 404 in der Seitenleiste zurück, wenn hässliche Permalinks verwendet werden"

    Anstatt von:

     home_url() . "/tag/" . $i->slug 

    Verwenden get_term_link() function get_term_link() . Es gibt den Link für den Begriff gemäß der aktuellen Konfiguration zurück:

     // Assuming $i is a term object get_term_link( $i->term_id ) 

    Zum Beispiel wäre Ihre printTags() function:

     function printTags($tags){ //Check to see if tags are provided if ($tags!=false) { $return = ''; foreach ($tags as $i){ $return .= '
  • ' . $i->name . '
  • '; } return $return; } }

    Nach dem Vorschlag für Tags, habe ich Kategorien arbeiten lassen.

    Ich habe die function getposts geändert, indem ich die Kategorie der cat_ID und nicht dem Slug zugeordnet habe:

     newSuggestion($post->post_title, get_the_category($post->ID)[0]->cat_ID, get_the_category($post->ID)[0]->name, $imageUrl, 

    Dann arbeitet die NewSuggestion-function die Kategorien auf diese Weise aus:

      

    Der Ansatz funktioniert, jeder Vorschlag oder jede Empfehlung zur Verbesserung ist mehr als willkommen.