Function ohne Funktion seit 3.1.2 (Datenbank)

  • Hallo Leute,

    habe soeben meinen Blog auf 3.1.2 geupdated. Nun hab ich folgendes Problem:

    Ich nehme den Titel der aktuellen Seite "Aktuell" und ergänze diesen Titel mit dem Wort " Bild". Ergibt: "Aktuell Bild".

    PHP
    <?php
        $titel = get_the_title();
        $suchseite =  $titel . " BILD";
        echo "<div id='suchergebnis_bild'>" . wt_get_ID_by_page_name($titel) . "</div>";
    ?>

    Folgender Code sucht nun in der Datenbank nach dem Artikel namens "Aktuell Bild" und postet den Content.

    PHP
    <?php
    function wt_get_ID_by_page_name($page_title)
    {
        global $wpdb;
        $page_title_id = $wpdb->get_var("SELECT post_content FROM $wpdb->posts WHERE post_title = '%".$page_title."%' AND post_status='publish'");
        return $page_title_id;
    }
    ?>

    Bis gestern lief das reibungslos. Soeben das Update gemacht und nun ist die Function ohne Funktion. Ich erhalte keine Ausgabe, aber auch keine Fehlermeldung. Nur ein leeres Div.

    Wäre für Ratschläge / Bugbeseitigungen dankbar.

    Gruß

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • get_the_title() benötigt als Parameter die Post-ID.

    Ersetz mal den ersten Codeblock mit:

    PHP
    <?php
        global $post;
        $titel = get_the_title($post->ID);
        $suchseite =  $titel . " BILD";
        echo "<div id='suchergebnis_bild'>" . wt_get_ID_by_page_name($titel) . "</div>";
    ?>

    wpseek.com - Die WordPress-Code-Suchmaschine

  • $post->ID

    get_the_title() benötigt als Parameter die Post-ID.

    Hallo Alphawolf,

    danke für die promte Rückmeldung. Habe es getestet, aber ohne Erfolg. Daran liegt es aber nicht, denn auch ohne $post->ID bekomme ich mit einem echo $titel den richtigen Titel ausgespuckt. Auch $suchseite ergibt die richtige Suchseite "Aktuell BILD".
    Nur die Funktion zur Datenbankabfrage tuts nicht mehr.

    Am Rande bemerkt: habe mich eben neu bei WP eingeloggt und jetzt steht wieder ich solle aktualisieren - hab ich doch schon?!

    Danke und Gruß

  • Gib mal die SQL-Query aus:

    PHP
    echo "SELECT post_content FROM $wpdb->posts WHERE post_title = '%".$page_title."%' AND post_status='publish'"


    und poste sie hier. Wenn du phpmyAdmin hast, kannst du die ausgegebene Query ja mal dort eingeben, ob du ein Ergebnis bekommst.

    Ich denke, es könnte was mit einem fehlenden addslashes zu tun haben.

    wpseek.com - Die WordPress-Code-Suchmaschine

  • Hallo Alphawolf,

    danke dafür. Ich habe meine Schwester um Hilfe gebeten (die hat mehr Ahnung als ich :lol:) und sie hat das Problem behoben.
    Wo genau der Fehler ist, kann ich als Leihe nicht feststellen. Ich kann nur wenig PHP.
    Aber hier der Code. Vielleicht kann es sich einer von euch erklären und den Fehler genauer definieren:

    Funktion:

    Ausgabe:

    PHP
    <?php
        $titel = get_the_title($post->ID);
        $suchseite =  $titel . " BILD";
        $ausgabe = wt_get_ID_by_page_name($suchseite);
        echo "<div id='suchergebnis_bild'>" . $ausgabe . "</div>";
    ?>

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!