Wordpress > nur Posts ab heute und in der Zukunft anzeigen > PHP ? > Plugin ?

uzzel

uzzel

Aktives Mitglied
Thread Starter
Dabei seit
05.03.2006
Beiträge
247
Reaktionspunkte
0
Hallo zusammen,
ich möchte auf einer Konzertseite mit Wordpress die Posts auf der Startseite so anzeigen, dass nur die Konzerte (Posts) ab heute und in Zukunft angezeigt werden. Hat jemand eine Idee? PHP anpassen? Plugin?
Auf dem Server läuft WP 3.8 mit dem Plugin "The Future is Now!"
Grüße und Danke,
uzzel
Die Sortierung sollte das nächste Konzert als ersten Post anzeigen. Je weiter das Konzert in der Zukunft, desto weiter unten der Post...
 
Wenn du die Konzerte einzeln als Blogbeiträge einstellst kannst du jeweils angeben, wann der Eintrag sich selbstständig löscht.
Das wäre ein Workaround, der mir grad so einfällt.

Wieviele Konzerte machst du denn so? Da du ja neue Termine eh einpflegen musst, kann das ja nicht soviel Arbeit sein, vergangene zu löschen…
 
Würde ich über die functions.php des Themes lösen.

Folgendes Snippet würde bedeuten:
Wenn es die Homepage ist, zeige Posts absteigend sortiert an.

Code:
// Runs before the posts are fetched
add_filter( 'pre_get_posts' , 'my_change_order' );
// Function accepting current query
function my_change_order( $query ) {
	// Check if the query is for homepages
	if($query->is_home)
		// Query was for home, then set order
		$query->set( 'order' , 'desc' );
	// Return the query (else there's no more query, oops!)
	return $query;
}

Dieses function-snippet ist ungetestet – aber so in etwa würde ich da rangehen.
Alternativ könntest du auch noch speziell die Kategorien angeben, welche angezeigt werden sollen.

Oder du setzt in der index.php des Themes (oder in der home.php) ähnliches ein:

Code:
<?php $posts = query_posts( $query_string . '&orderby=title&order=desc' ); ?>

Gibt aber auch Plugins dafür:
http://perishablepress.com/6-ways-to-customize-wordpress-post-order/
 
Code:
<?php $posts = query_posts( $query_string . '&orderby=title&order=desc' ); ?>

Hi Difool, danke. Ich werde es testen. Bist du sicher, dass es bei '&orderby... "title" heißt und nicht "date" oder so ?
uzzel
 
Wieviele Konzerte machst du denn so? Da du ja neue Termine eh einpflegen musst, kann das ja nicht soviel Arbeit sein, vergangene zu löschen…

Hallo clonie, löschen geht nicht, da es ein Konzertarchiv gibt, in dem alle Veranstaltungen drin stehen sollen.
uzzel
 
Könnte man das nicht über die Anzahl der Post auf der Startseite oder das anpinnen der Posts oder eine Modifizierung des Erstellungsdatums "workarounden"?
 
Hi Difool, danke. Ich werde es testen. Bist du sicher, dass es bei '&orderby... "title" heißt und nicht "date" oder so ?
uzzel

ja, deswegen schrieb ich ja auch "ähnliches"… :D

Code:
query_posts($query_string . '&orderby=date&order=DESC')
 
Dank "externer" Hilfe ist jetzt ein Teil der Aufgabe gelöst: Es werden alle Posts ab heute +12 Monate angezeigt, aber die Sortierung in absteigender Reihenfolge greift nicht. Weder DSC noch ASC bringen eine Veränderung. Es soll immer der nächste Termin ab heute als erstes angezeigt werden. Hat jemand eine Idee?

Code:
<?php
    $args = array(
       'date_query' => array(
	    array(
                 'after'     => 'now'
               , 'before'    => '12 month'
               , 'inclusive' => true
	      )
	    )
	    , 'post_status' => 'future, publish'
	    , 'posts_per_page' => $postsperpage
	 );
	 
    $the_query = new WP_Query( $args );

if ( have_posts() ) : $count = 0;
 ?>

<?php query_posts($query_string . "&orderby=date&order=ASC"); ?>
<?php /* Start the Loop */ ?> ...
 
Zurück
Oben Unten