2

ich das Archiv einer Kategorie zu einem Post-Typ Basis erhalten möchten (Beispiel: Video-Post-Typ) Ich habe versucht, eine Beispiel-URL mit dieser Funktion zu erhalten: get_post_type_archive_linkWordpress Post Art Archiv-Link

Aber ich couldn Erhalte den Link nicht und ich bekomme eine falsche Antwort Wie bekomme ich einige Beispiellinks für das Archiv des angegebenen Posttyps in einer Kategorie?

Können Sie mich bitte wissen, wie ist ein Beispiel-Link eines benutzerdefinierten Beitragstyps für eine Kategorie?

Ich habe diese Linie in index.php dem Thema:

var_dump(get_post_type_archive_link('video')); 

eine Video-Post Art entstanden, aber für diesen Wert nichts Display! nur falsch

Vielen Dank

+0

mir bitte zeigen Sie Ihren Code? –

+0

Ich habe dies auf meinen Index des Themas gesetzt, versucht, viele Posts und Seiten zu durchsuchen, die es vielleicht etwas zurückgeben kann, aber nur falsch: var_dump (get_post_type_archive_link ('video')); –

+0

wird false zurückgegeben, wenn post_type nicht existiert oder post_type kein Archiv hat. –

Antwort

0

ich einen Weg zu finden, alle Post-Formate in einer Kategorie zur Liste, ist Pfosten Typ etwas anderes

Kern Wordpress Post-Typen sind:

  1. Beitrag (Beitrag Typ: ‚Post ‚)
  2. Seite (Beitrag Typ: 'Seite')
  3. Befestigung (Beitrag Typ: 'Befestigung')
  4. Revision (Beitrag Typ: 'Revision')
  5. Navigationsmenü (Beitrag Typ: 'nav_menu_item')

Wordpress Post-Formate:

  1. beiseite - In der Regel ohne Titel gestylt. Ähnlich wie ein Facebook-Notizupdate.
  2. galerie - Eine Galerie von Bildern. Post wird wahrscheinlich einen Galerie-Shortcode enthalten und Bildanhänge enthalten.
  3. link - Ein Link zu einer anderen Website. Designs möchten möglicherweise das erste Tag im Post-Inhalt als externen Link für diesen Post verwenden. Ein alternativer Ansatz könnte sein, dass wenn der Post nur aus einer URL besteht, dann ist dies die URL und der Titel (post_title) ist der Name, der an den Anker angehängt ist.
  4. Bild - Ein einzelnes Bild. Das erste Tag in dem Post könnte als das Bild betrachtet werden. Wenn der Post nur aus einer URL besteht, ist dies alternativ die Bild-URL und der Titel des Posts (post_title) ist das Titelattribut für das Bild.
  5. zitat - Ein Zitat. Wahrscheinlich wird eine Blockquote enthalten, die den Angebotsinhalt enthält. Alternativ kann das Zitat nur der Inhalt sein, wobei die Quelle/der Autor der Titel ist.
  6. Status - Eine kurze Statusaktualisierung, ähnlich einem Twitter-Statusupdate.
  7. Video - Eine einzelne Video- oder Video-Playlist. Das erste Tag oder Objekt/eingebettet in den Post-Inhalt könnte als Video betrachtet werden. Wenn der Post nur aus einer URL besteht, ist dies alternativ die Video-URL. Kann das Video auch als Anhang zum Post enthalten, wenn die Videounterstützung im Blog aktiviert ist (zB über ein Plugin).
  8. Audio - Eine Audiodatei oder Wiedergabeliste. Kann für Podcasting verwendet werden.
  9. Chat - Ein Chat-Transkript, etwa so:

Um das Archiv eines Post-Format führen wir so etwas wie diese verwenden: http://sitename.com/type/image

2

Erste Lösung:

ich hier eine Lösung gefunden: http://gabrieleromanato.name/wordpress-fix-the-404-error-on-custom-post-types/

Hier ist, was Sie tun müssen, um es (zitiert von Seite oben) an die Arbeit:
/% category% /% post% Änderungen sparen:

Gehen Sie zu Einstellungen → Permalinks und Ihre aktuelle Struktur ändern. Stellen Sie Ihre ursprünglichen Permalink Einstellungen wieder her. Änderungen speichern.

Zweite Lösung:

Stellt sich heraus, es eine Funktion in Wordpress ist 3.1, die genau das tut, was Sie wollen, und es ist get_post_type_archive_link genannt(); hier ist, wie Sie es nennen würde (eine benutzerdefinierte Post-Typ namens ‚Produkt‘ vorausgesetzt):

<a href="<?php echo get_post_type_archive_link('product'); ?>">Products</a> 

Unter meiner vorherigen Antwort ist, bevor ich, dass Wordpress entdeckt in der Tat eine Funktion eingebaut für diesen Anwendungsfall hatte.

Prior Antwort:

Wenn ich etwas in dem Kern-Quellcode für Wordpress übersah 3.1 Ich denke, Sie für eine Funktion wie get_archive_link suchen(), die Sie so nennen könnten (einen benutzerdefinierten Post-Typ namens der Annahme ‚Produkt ‚):

<a href="<?php echo get_archive_link('product'); ?>">Products</a> 

und hier ist der Quellcode, die Sie Ihr Thema ist in function.php Datei oder in einer php-Datei für ein Plugin platzieren können Sie mit dem Schreiben werden:

if (!function_exists('get_archive_link')) { 
    function get_archive_link($post_type) { 
    global $wp_post_types; 
    $archive_link = false; 
    if (isset($wp_post_types[$post_type])) { 
     $wp_post_type = $wp_post_types[$post_type]; 
     if ($wp_post_type->publicly_queryable) 
     if ($wp_post_type->has_archive && $wp_post_type->has_archive!==true) 
      $slug = $wp_post_type->has_archive; 
     else if (isset($wp_post_type->rewrite['slug'])) 
      $slug = $wp_post_type->rewrite['slug']; 
     else 
      $slug = $post_type; 
     $archive_link = get_option('siteurl') . "/{$slug}/"; 
    } 
    return apply_filters('archive_link', $archive_link, $post_type); 
    } 
} 

Ich habe tatsächlich über das Wochenende an dieser genauen Logik gearbeitet, obwohl ich mir noch nicht 100% sicher bin, dass die Reihenfolge der Logik generisch korrekt ist in allen Anwendungsfällen, die WordPress sehen könnte, obwohl es wahrscheinlich für eine bestimmte Site funktioniert.

Dies ist auch eine großartige Sache, um WordPress über trac hinzugefügt werden, was ich denke, ich werde später am Abend tun.

+0

Ich folgte deinen Lösungen, aber nicht successfull, Ich habe diese Funktion auch verwendet, aber sie gibt false zurück –

+0

Hey, ich habe das Problem und die Lösung gefunden, schau hier: http://stackoverflow.com/questions/38741566/wordpress-get-post-type-archive-link/ 38743859 # 38743859 –

+0

Aus Gründen, die ich nicht ergründen kann, gibt get_post_type_archive_link() die Homepage meiner Website inkonsistent zurück. Ihre Funktion macht den Trick. – MastaBaba