Benutzerdefinierte WP_Query -Zeitfilter auf meta_Value
Frage
Mein Ziel ist es, nur Beiträge mit Öffnungszeiten nach den Geschäftszeiten für einen bestimmten Tag zu zeigen. Also, z. B. habe ich einen (benutzerdefinierten) Beitrag mit folgenden Meta_Key und Meta_Value:
meta_key = 'montag, meta_value = '14: 00 - 22:00'
Die Geschäftszeiten sind festgelegt: '08: 00 - 18:00 ''
Ich möchte meinem benutzerdefinierten WP_Query einen Filter hinzufügen. Nur, ich bleibe bei der Definition einer Funktion.
Meine logische Eingabe (definitiv nicht korrekt und vollständig) für die Funktion:
$from_std = strtotime("08:00");
$to_std = strtotime("18:00");
$open = $my_meta['monday'];
list($from, $hyphen, $to) = explode(' ', $open);
$from_bus = strtotime($from);
$to_bus = strtotime($to);
if ($from_bus < $from_std) { $show = 1; } // before standard starting time - so SHOW
else {if ($to_bus > $to_std) { $show = 1; }} // after standard closing time - so SHOW
if (empty($from_bus)) { show = 0; } // $var is either 0, empty, or not set at all - so do NOT show
Hilfe bei einer Funktion wird sehr geschätzt.
Lösung
Sie können die WP Query_Posts verwenden, um über Ihre benutzerdefinierten Werte zu filtern. EAN -Beispiel:
query_posts('meta_key=my_type&meta_compare=<=&my_value=20&orderby=my_value');
if (have_posts()) :
while ( have_posts() ) : the_post();
Aber ich denke, Sie müssen die zeitlichen Werte für eine lesbare Zeichenfolge ersetzen, vielleicht mit der strengen Zeit, dass Sie das gleiche Format für die Abfrage haben.