Was ich vergaß zu erwähnen ist das die Datenbankabfrage in der selben Datei stattfindet, also es wir (zumindest wenn ich eben die Permalinks auf EINFACH stelle) abgefragt ob POST etwas übertragen hat 😉
Hat keiner eine Idee, oder benötigt ihr mehrere Informationen?
Ich seh glaub ich echt den Wald vor lauter Bäumen nicht – Ist ja nicht so das ich keine Ahnung von PHP und MySql hätte, aber bei WordPress bin ich eben was das Programmieren angeht noch „Neuling“.
Wisst ihr eventuell ein Forum wo ich mehr Glück hätte?
Es eilt nämlich etwas. 🙁
L.g. Gerry
Hallo,
nur ganz kurz (wegen absoluten Zeitmangel): Ohne das Plugin genauer zu kennen und zumindest teilweise die Programmierung zu sehen, ist das schwierig.
Evtl. kannst Du es auch hier oder hier mal versuchen.
Sorry, ich komme in den nächsten Tagen nicht dazu, mir das näher anzusehen.
Viel Erfolg
Hans-Gerd
Hallo Hans-Gerd
Danke für die Links!
Mir ist es jetzt egal, ich stelle den Code einfach einmal rein 😉
<?php
error_reporting(E_ALL);
/*
Plugin Name: Songhistorie
Plugun URI: https://saiger.at
Description: Anzeige gespielter Song im Frontend mittels Shortcode.
Version: 1.0.0
Author: Gerald Saiger
Author URI: https://saiger.at
License: GPL-3.0
License URI: https://www.gnu.org/licenses/gpl-3.0
*/
defined('ABSPATH') or die("Thanks for visting");
add_shortcode('titel-anzeigen', 'TitelAnzeigen');
function TitelAnzeigen() {
date_default_timezone_set('Europe/Berlin');
global $wpdb;
wp_enqueue_style('songview', plugin_dir_url(__FILE__) . 'css/songview.css');
TitelSuche(); // Suchformular ein binden
// Formular Ende
if (isset($_POST['aktion'])) { // Titelsuche gestartet wurde
$date = $_POST['datum'];
$time= $_POST['stunde'].':'.$_POST['minute'].':00';
$searchdate= $date.' '.$time;
$timestamp = strtotime($searchdate);
$search1 = $timestamp; // Minus 5 Minuten
$search1 = $search1 - 600;
// $search2 = $timestamp; // Plus 5 Minuten
$search2 = $timestamp + 600;
$sql = $wpdb->get_results("SELECT * FROM ".$wpdb->prefix."titelhistorie WHERE datetime >= '".$search1."' AND datetime <= '".$search2."' ORDER BY tid DESC");
}
else { // Standartausgabe wenn die Seite geladen wird
$sql = $wpdb->get_results("SELECT * FROM ".$wpdb->prefix."titelhistorie ORDER BY tid DESC LIMIT 20");
}
// Alle Einträge listen (Begriff und Beschreibung)// $sql = $wpdb->get_results("SELECT * FROM ".$wpdb->prefix."titelhistorie ORDER BY tid DESC LIMIT 20");
// Anzahl der Datensätze ermitteln
$numrows = $wpdb->num_rows;
// Anzahl der Datensätze anzeigen
$anzahl = "<p class='glossarnumrows'>Es gibt ".$numrows." Einträge.</p>";
$ausgabe ="";
// Ausgabe der Datensätze als Liste, Begriff und Beschreibung
foreach($sql as $result)
{
if ($result->song !== "Besuch uns bei Facebook! - Klick jetzt rein!"){
$ausgabe .="<p>";
$song = explode("-", $result->song,2);
$artist =$song[0];
$title =$song[1];
$ausgabe .= $artist.'<br>'.$title;
$ausgabe .="</p>";
$ausgabe .="<hr>";
$ausgabe .="<p>";
$datum = explode("-", $result->date);
$uhrzeit = explode(":", $result->time);
$datum = $datum[2].'.'.$datum[1].'.'.$datum[0];
$uhrzeit = $uhrzeit[0].':'.$uhrzeit[1];
$ausgabe .= $datum."<br/>".$uhrzeit;
$ausgabe .="</p>";
}
//$ausgabe = "<p>".$result->song."</p><p>"$result->date."</p><p>"$result->time."</p>";
}
return $ausgabe;
}
function TitelSuche() {
global $post; // Nur als TEST
echo $post->ID; // Nur als TEST
echo'<hr>'; // Nur als TEST
echo '<div class="flex-container">';
echo'<form action="'.get_permalink().'" method="post" class="formular">';
//Datum
$day = date("Y-m-d");
echo'<select name="datum" class="day">';
echo'<option value="'.$day.'">Heute</option>';
$i = 1;
while ($i <= 6)
{
//$date = date("Y-m-d");
//echo $i; // es wird $i ausgegeben
$date = new DateTime(date("Y-m-d"));
$date->sub(new DateInterval('P'.$i.'D'));
$DateNew = $date->format('Y-m-d');
echo'<option value="'.$DateNew.'">';
echo $DateNew;
echo'</option>';
$i++; // Wert wird um 1 erhöht
}
echo'</select>';
//Stunde
echo'<select name="stunde" class="hour">';
$i = 0;
while ($i <= 23)
{
if($i <=9) $h = '0'.$i;
else $h = $i;
echo'<option value="'.$h.'">';
echo $h;
echo'</option>';
$i++;
}
echo'</select>';
//Minute
echo'<select name="minute" class="minute">';
$i = 0;
while ($i <= 59)
{
if($i <=9) $m = '0'.$i;
else $m = $i;
echo'<option value="'.$m.'">';
echo $m;
echo'</option>';
$i++;
}
echo'</select>';
echo'<input type="hidden" name="aktion" value="suchen">';
echo'<input type="submit" value="Anzeigen" class="button">';
echo'</form>';
echo'';
echo'</div>';
}
?>
Wie man sieht sind es zwei Funktionen, einmal die Ausgabe und eben einmal das Abfrage-Formular (welches wiederum oberhalb der Ausgabe eingefügt wird)
Vielleicht hilft es ja dazu mein Problem, das es beim Permalink „Beitragsnamen“ nich funktioniert.
L.g. Gerry
Kurzes Update!
Habe das gesamte Script nun umgeschrieben und nutze es mit jQuery und Ajax – So funktioniert es nun auch mit dem Permalink!
😉
L.g. Gerry
Danke für die Rückmeldung 🙂