Einfach bei "save_post" (die Action wird beim Speichern eines Posts/Page ge"triggert") die Posts in der DB ablegen.
Also quasi sowas:
function pre_saved_posts() {
// zuerst checken, ob alles passt:
// keine Ressourcenvergeudung im Front-End betreiben:
if ( !is_admin() && !current_user_can('edit_posts') )
return;
global $post;
// Options-Name
$opt_name = 'home_post_ids';
// zuerst die Datenbank befragen
$db_option_value = get_option( $opt_name );
// wenn kein Wert vorhanden, dann array erstellen, sonst ID an das Array anhängen
empty($db_option_value) ? $post_ids = array($post->ID) : $post_ids .= $post->ID;
// Posts holen
$posts = get_posts( array( 'include' => $post_ids ) );
// DB-Option im Option-Table updaten oder anlegen
empty($db_option_value) ? add_option( $opt_name, $posts ) : update_option( $opt_name, $posts );
}
// Function ausführen wenn der Post gespeichert wird
add_action( 'save_post', 'pre_saved_posts', 20 );
Alles anzeigen
Dann müsste man eigentlich nur mehr die Option (1e Abfrage der DB) aus der Options-Tabelle mit holen, also in etwas so:
$home_posts = get_option( 'home_post_ids' );
foreach ( $home_posts as $post ) {
// Jetzt auf alle möglichen Parameter des Post-Objekts (od. ist das ein Array?) zugreifen und die Artikelansicht bauen
// möglich sind zB.: $post->ID, $post->post_content, $post->post_title, etc.
}
Alles klar? Gutes Gelingen!
Ps.: Alternativ könnte man auch einen shedule_event [1] machen.
Pps.: Ist alles ungetestet, also bitte hier berichten ob das so funktioniert.
[1] http://codex.wordpress.org/Function_Refer…_schedule_event