Beiträge von kanuddel
-
-
Hallo zusammen,
ich bin mit Wordpress nicht bewandert, soll aber für meine Frau eine Kleinigkeit an einem bestehenden Plugin umprogrammieren. Den Ersteller des Plugins gibt es leider nicht mehr, somit bleibt es an mir hängen, hier kleine Bugs zu beheben. Dürfte eigentlich keine große Sache sein, aber ich mache nun schon zwei Tage damit rum und, egal wie ich es probiere, "critical errors" sind so ziemlich das Einzige was ich bekomme, wenn ich die geänderte Datei hochlade. Daher seit Ihr sozusagen meine letzte Hoffnung :)
Folgendes Problem:
Es gibt einen Kalender (siehe angehängtes Bild) und entsprechend was ausgewählt ist, dementsprechend wir der Inhalt der dazu passt, ausgegeben.
Klingt schön, aber diese Kalenderwochen-Ansicht ist absoluter Quatsch. Alles was gewünscht ist, ist ein "Von / Bis" Auswahlmenü wie man sie eigentlich von vielen Seiten kennt.Soweit ich das richtig erkenne sind dafür zwei Codestellen relevant, die ich euch hier zeigen möchte:
Die Menü Darstellung die komplett ersetzt werden muss
PHP
Alles anzeigenpublic function getMenu() { $main = array(); $subkalender = array(); $ = $this->getActKunde(); if ($ !== null) { $kwmonth = date('W'); $kwyear = date('Y'); $kwlastyear = $kwyear; $kwlastmonth = 0; if ($kwmonth < 26) { $kwlastyear = $kwyear - 1; $kwlastmonth = 52 - (26 - $kwmonth); } $spezialObjVorJahr = new stdClass(); $spezialObjVorJahr->name = 'h2'; $spezialObjVorJahr->value = $kwlastyear; $subkalender[] = new MenuItem(__('Alles aus ', 'akzente') . ' ' . $kwlastyear, array( 'setKW', - 1, 'setYEAR', $kwlastyear ), linkType::$linkSingle); if ($kwlastyear != $kwyear) { for ($i = ($kwlastmonth); $i <= 52; $i ++) { $subkalender[] = new MenuItem(__('KW', 'akzente') . ' ' . $i, array( 'setKW', $i, 'setYEAR', $kwlastyear ), linkType::$linkSingle, null, $spezialObjVorJahr); } } if ($kwmonth < 26) { $kwlastmonth = 1; } else { $kwlastmonth = $kwmonth - 26; } $spezialObjAktJahr = new stdClass(); $spezialObjAktJahr->name = 'h2'; $spezialObjAktJahr->value = $kwyear; $subkalender[] = new MenuItem(__('Alles aus ', 'akzente') . ' ' . $kwyear, array( 'setKW', - 1, 'setYEAR', $kwyear ), linkType::$linkSingle); for ($i = $kwlastmonth; $i <= $kwmonth; $i ++) { $subkalender[] = new MenuItem(__('KW', 'akzente') . ' ' . $i, array( 'setKW', $i, 'setYEAR', $kwyear ), linkType::$linkSingle, null, $spezialObjAktJahr); } } //Hier kommt noch einiges an anderem Menü Content der hierfür so wie ich das sehe nicht wichtig ist $main = array_filter($main); return $main; }Und des Weiteren der Code, der dann letztendlich den Content aufgrund der Auswahl anzeigt. Dies ist die Originalversion, ich habe hier schon Unmengen ausprobiert, ohne Erfolg:
PHP
Alles anzeigenpublic function getReports($options = array()) { $reportsCPTName = ktkReports::getCustomPostName(); $hort = (isset($_REQUEST['setHort']) ? $_REQUEST['setHort'] : null); $kw = (isset($_REQUEST['setKW']) ? $_REQUEST['setKW'] : null); $kwyear = (isset($_REQUEST['setYEAR']) ? $_REQUEST['setYEAR'] : null); if (isset($hort)) { $metas[] = acf_reverse_meta('hort', $hort); } if (isset($kw)) { if ($kw != '-1') { $kw = sprintf("%02d", $kw); $metas[] = array( 'key' => 'KW', 'value' => $kw, 'compare' => '=' ); } if (isset($kwyear)) { $metas[] = array( 'key' => 'KWY', 'value' => $kwyear, 'compare' => '=' ); } else { $metas[] = array( 'key' => 'KWY', 'value' => date('Y'), 'compare' => '=' ); } } $args = array( 'post_type' => $reportsCPTName, 'orderby' => 'meta_value_num', 'meta_key' => 'ktksort', 'order' => 'DESC', 'posts_per_page' => 250, 'post_status' => 'publish' ); // Einiges an Code entfernt da vermutlich nicht wichtig für das Problem } if (isset($metas)) { $meta = buildMetaAnd($metas); $args = array_merge($meta, $args); } if (isset($options["search"])) { add_filter('posts_where', array( $this, 'title_filter' ), 10, 2); $args['search_for_text'] = $options["search"]; ktkDebug::ktkdeb('Content QS', $args); $q = query_posts($args); remove_filter('posts_where', array( $this, 'title_filter' ), 10); } else { ktkDebug::ktkdeb('Content Q', $args); $q = query_posts($args); } ktkDebug::ktkdeb('getContentResult', count($q)); return $q; }
Dies ist wie gesagt die "Originalversion", nicht die von mir schon zig mal verhunzte Version. Hier kann theoretisch der ganze Kalenderwochen-Kram ja weg. Aber um mit von/bis zu arbeiten, habe ich dann Dinge wie das hier Probiert:PHPif(isset($datumvon) && isset($datumbis)){ $metas[] = array( 'key' => 'event_date', 'value' => array(date('10/10/2020'), date('10/11/2020')), // mit fixen Zahlen probiert 'compare' => 'BETWEEN', 'type' => 'DATE' );Egal wie ich das Probiere, es endet immer in Critical Errors von WordPress. Würde das Funktionieren, dann könnte man ja immerhin schon mit Parametern in der URL das gewünschte Ergebnis irgendwie herbeiführen. Eine "Kalender-VonBis-Auswähl-Funktion" ist dann ja nochmal eine ganz andere Hausnummer.
Ja, also, lange Rede kurzer Sinn. Ich hoffe, Ihr versteht das Problem und könnt mir da irgendwie helfen. Ich bin da ziemlich am verzweifeln und jetzt eigentlich an dem Punkt wo ich aufgeben möchte. Aber wenn einen die Frau fragt...
Vielen Dank schon Mal für's lesen und vielleicht kann mir der ein- oder andere ja weiterhelfen.
kanuddel