Hallo,
kann mir hier vielleicht jemand helfen ?
Ich habe eine Datenbankabfrage, die mir alle Abreisetermine (ACF repeater Felder) eines Maonats auswirft - das funktioniert soweit auch.
Ich möchte aber noch ergänzend im Frontend die Möglichkeit bieten, die Termine nach Ländern (Categories) zu filtern.
Durch ein Dropdown Menü, in dem alle Kategorien angezeigt werden und dann nur die entsprechenden Termine dieser Kategorie ausgeworfen werden.
Habe aber keinen blassen Schimmer wie und ob das überhaupt geht...?
Hier der bisherige Code:
PHP
<?php
// get all rows from the postmeta table where the sub_field (type) equals 'june, or "06"'
// - http://codex.wordpress.org/Class_Reference/wpdb#SELECT_Generic_Results
// $date = date('Ymd');
$rows = $wpdb->get_results($wpdb->prepare(
"
SELECT *
FROM $wpdb->postmeta pm
Join wp_posts p ON pm.post_id=p.ID
WHERE p.post_status = 'publish' AND pm.meta_key LIKE %s
AND pm.meta_value LIKE %s
AND pm.meta_value > CURDATE()
ORDER BY pm.meta_value ASC;
",
't_block_%_beginn', // meta_name: $ParentName_$RowNumber_$ChildName
"201704__" // meta_value:
));
// loop through the results
if( $rows )
{
foreach( $rows as $row )
{
// for each result, find the 'repeater row number' and use it to load the info!
preg_match('_([0-9]+)_', $row->meta_key, $matches);
$meta_key_beginn = 't_block_' . $matches[0] . '_beginn'; // $matches[0] contains the row number!
$beginn_id = get_post_meta( $row->post_id, $meta_key_beginn, true );
$timestamp_beginn = DateTime::createFromFormat('Ymd', $beginn_id);
$meta_key_ende = 't_block_' . $matches[0] . '_ende';
$ende_id = get_post_meta( $row->post_id, $meta_key_ende, true );
$timestamp_ende = DateTime::createFromFormat('Ymd', $ende_id);
$meta_key_preis = 't_block_' . $matches[0] . '_preis'; // $matches[0] contains the row number!
$preis = get_post_meta( $row->post_id, $meta_key_preis, true );
$meta_key_buchbar = 't_block_' . $matches[0] . '_buchbar';
$buchbar = get_post_meta( $row->post_id, $meta_key_buchbar, true );
$meta_key_sprache = 't_block_' . $matches[0] . '_sprache';
$sprache = get_post_meta( $row->post_id, $meta_key_sprache, true );
$meta_key_gesichert = 't_block_' . $matches[0] . '_gesichert';
$gesichert = get_post_meta( $row->post_id, $meta_key_gesichert, true );
$meta_key_bemerkung = 't_block_' . $matches[0] . '_bemerkung';
$bemerkung = get_post_meta( $row->post_id, $meta_key_bemerkung, true );
echo '<li> <p> <h5>' ;
echo '' . $timestamp_beginn->format('d.m.Y') . ' - ';
echo '' . $timestamp_ende->format('d.m.Y') . ' :';
echo ' ' ."<a href='" . get_permalink($row->post_id) . "'>";
echo get_the_title( $row->post_id ).' ';
echo "</a>";
echo ' ' . $preis . ' € ';
echo ' ' . $sprache . ' ';
echo ' ' . $buchbar . ' ';
echo ' ' . $gesichert . ' ';
echo ' ' . $bemerkung . ' </p></h5></li>' ;
?>
<?php
}
}
?>
Alles anzeigen