it-swarm.com.de

get_post_type_archive_link ('post') gibt das aktuelle Kategoriearchiv zurück

Ich benutze get_post_type_archive_link('post') auf meiner index.php Seite, um die URL aller Beiträge aus allen Kategorien zu erhalten.

Ich benutze es in einem Filter. Ich habe alle Kategorien separat mit aufgelistet

$filter_cat=array();
$categories = get_categories();
foreach ($categories as $category_one) {
    $cat_ID = $category_one->cat_ID;
    $cat_name = $category_one->name;
    $filter_cat[] ='<a href="'.get_category_link( $cat_ID ).'" data-cat="'.$cat_ID.'">'.$cat_name.'</a>';
}
$filter_cat_out = '<li class="filter_button_category">' . implode('</li><li class="filter_button_category">', $filter_cat) . '</li>';
$filters_out = '<li class="filter_button_category filter_button_all">
                    <i class="icon-tag"></i><a href="'.get_post_type_archive_link('post').'" class="all_posts">'.esc_attr__('All', 'mytheme').'</a>
                </li>
                '.$filter_cat_out;

Jetzt funktioniert alles einwandfrei, wenn ich Blog als Hauptseite verwende, aber wenn ich eine Seite als statische Seite auswähle und manuell zu meiner Indexseite gehe (ich muss zu einer der Kategorien gehen), dem Link "Alle" zeigt immer auf die aktuelle Kategorie anstatt auf die Archivseite mit allen aufgelisteten Kategorien.

Ist so etwas überhaupt möglich? Erhalten Sie einen Link zu einer Seite, auf der alle Kategorien auf meiner Archivseite aufgelistet sind?

1
dingo_d

get_post_type_archive_link() gibt keinen Link für den Beitragstyp post zurück, da bei der Registrierung des Beitragstyps technisch kein Archiv registriert ist. Sie können dies überprüfen, wenn Sie die Ausgabe von get_post_type_object( 'post' ) überprüfen. Tatsächlich gibt get_post_type_archive_link( 'post' )false zurück - siehe source .

Sie können den Link für die Seite für die Beiträge auf eine andere Weise erhalten:

$permalink = get_permalink( get_option( 'page_for_posts' ) );
2
Nicolai