Ausgabe von benutzerdefinierten Posts auf einer Seite

Ich versuche, eine function zu schreiben, die eine Reihe von Posts auf einer Seite ausgeben wird. Da ich mehr als nur die wp_get_archives() anzeigen möchte, wird wp_get_archives() nicht funktionieren (denke ich). Die function zum Hinzufügen der Post-Liste analysiert das Seiten-Meta, um herauszufinden, welche Art von Liste es ausgeben soll. Dann führt er eine Abfrage für diese Post-Typen aus und gibt sie mit dem gleichen Template-Fragment aus, das in archive-{posttype}.php . Zumindest sollte es so funktionieren. Hier ist die function, die in meiner functions.php Datei lebt:

 function ASH_archive(){ global $posts; $postholder=posts;//so I can reset to original after archives done if(!$ptype=get_post_meta('ASHarchivetype')) return;//no archive requested $path="layouts/layout-blog.php"; $pt='post'; switch($ptype){ case 'equipment': case 'dyeing': case 'spinning': case 'weaving': $pt='ash_'.$ptype; $path="layouts/{$ptype}/layout-blog.php"; break; case 'loomsong': $pt='ash_loomsong'; break; } $posts=get_posts(array('post_type'=>$pt)); get_template_part($path); $posts=$postholder; //reset to original value } 

Ich möchte die function in dieser Vorlage verwenden:

  
<div id="post-">

Die function scheint nichts zu tun. Ich weiß nicht, ob das daran liegt, dass die function falsch geschrieben ist oder wenn ich sie an irgendeinen Haken befestigen muss. Ich habe über Filter und Aktionen gelesen und kann nicht herausfinden, welchen Haken ich für meine function verwenden soll oder ob das die richtige Richtung ist. Hilfe?

ps, was noch schöner sein könnte, ist ein shortcode, um die function aufzurufen, wo immer ich wollte.

Solutions Collecting From Web of "Ausgabe von benutzerdefinierten Posts auf einer Seite"

Ich bin mir nicht sicher, ob ich genug Informationen habe, damit das wie erwartet funktioniert. Ich kann Ihnen sagen, dass das, was Sie verwenden, nicht für einige funktioniert, unabhängig von den Filtern, die Sie verwenden.

Erster Fehler: Sie verwenden Klammern, die nicht geschlossen sind

Zweitens verwenden Sie, wenn Sie Posts haben … aber dann setzen Sie es am Ende des Codes zurück.

Hier ist, was ich zusammengestellt habe, das die oben genannten Fehler behebt, aber ich bin mir nicht sicher, dass es funktioniert, wie Sie wollen (zumindest die Syntax ist korrekt).

 < ?php /* Template Name: Archives with Content */ get_header(); ?> 
< ?php suffusion_page_navigation(); suffusion_before_begin_content(); ?>
< ?php global $post; if (have_posts()) : while (have_posts()) : the_post(); $original_post = $post; ?>
id="post-< ?php the_ID(); ?>"> < ?php suffusion_after_begin_post(); ?>
< ?php suffusion_content(); ?>
< ?php endwhile; ?> < ?php else : // Due to the inclusion of Ad Hoc Widgets the global variable $post might have got changed. We will reset it to the original value. $post = $original_post; suffusion_after_content(); ?> < ?php endif; ?>