Plugin ändern - warum funktioniert get_permalink hier nicht?

  • Hi,

    hier kommt eine Frage von jemandem, der nicht viel Ahnung von PHP hat, sich aber trotzdem gern ein Plugin etwas anpassen würde.

    Habe versucht, im Plugin page-lists-plus die Ausgabe zu ändern:

    aus

    Code
    $redirect_url_data = mysql_query("SELECT ID, redirect_url FROM " . $posts_table . " WHERE redirect_url IS NOT NULL AND post_status = 'publish'");
    	while ($row = mysql_fetch_assoc($redirect_url_data)) {
    		extract($row);
    		$page_url = get_permalink($ID);
    		$output = str_replace($page_url . '"', $redirect_url . '"', $output);
    	}

    soll


    werden.
    Eigentlich läuft auch alles ganz rund (= keine errors...) nur das Abgreifen des Permalinks zu gegebener ID scheint nicht zu funktionieren - es wird einfach nur die ID ausgegeben. Ich vermute, es hat etwas mit dem Variablentyp zu tun?! Ist bestimmt nur ein ganz kleines Problem, aber s.o. :D

    Kann mir jemand helfen?

    • 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

  • Woher kommt hier $ID?

    PHP
    $page_url = get_permalink($ID);

    [COLOR="Blue"]EDIT: Ah, von extract(), sorry. Naja, ich finds unsauber... ;-) Versuchs entweder mal mit dem Tipp:[/COLOR]

    Oder suchst du

    PHP
    $page_url = get_permalink($row["ID"]);

    [COLOR="#0000ff"]oder füge mal ein paar debug-Ausgaben (var_dump($ID)) ein und schau ob die korrekten Werte vorhanden sind. [/COLOR]

    PS: Du solltest die $wpdb-Klasse für SQL-Abfragen innerhalb von WP verwenden.
    Function Reference/wpdb Class WordPress Codex

  • Hi marX,

    danke für die interessanten Hinweise! Aber um das Plugin "sauber" umzuschreiben, dazu fehlen mir einfach die Kenntnisse :D Deshalb möchte ich lieber nur so weit eingreifen wie unbedingt nötig.

    Ich glaube, die von dir monierte Zeile ist gar nicht das Problem, die hat ja vorher auch funktioniert, sondern das hier: $redirect_permlink = get_permalink(intval($redirect_url));

  • danke für die interessanten Hinweise! Aber um das Plugin "sauber" umzuschreiben, dazu fehlen mir einfach die Kenntnisse :D Deshalb möchte ich lieber nur so weit eingreifen wie unbedingt nötig.


    Ist okay und sicher eh nicht nötig. ;-)

    Zitat

    Ich glaube, die von dir monierte Zeile ist gar nicht das Problem, die hat ja vorher auch funktioniert, sondern das hier: $redirect_permlink = get_permalink(intval($redirect_url));


    dann lass dir doch mal direkt davor $redirect_url ausgeben:

    PHP
    var_dump($redirect_url);


    Da sollte dann wohl ein Integer-Wert drin stehen, bzw. einer der sich verlustfrei nach Integer casten lässt,

  • du wirst wahrscheinlich nicht glauben, daß jemand wirklich so wenig von PHP verstehen kann, aber... :D

    wo müßte ich die Ausgabe von var_dump sehen?

    Es ändert sich nämlich genau gar nix.

    Sorry für die Doofheit ;)

    Edit: das Problem scheint doch an anderer Stelle zu liegen, es springt wohl gar nicht in die if-Schleife rein. Melde mich zurück wenn ich weiter bin...

    Einmal editiert, zuletzt von BZ (8. Juni 2009 um 22:50)

  • wo müßte ich die Ausgabe von var_dump sehen?


    Wenn sonst nichts weiter passiert - irgendwo im HTML-Quelltext der Seite. Ansonsten mal noch ein "die;" dahinter - dann wird die Abarbeitung direkt nach der Ausgabe abgebrochen.

    Zitat

    du wirst wahrscheinlich nicht glauben, daß jemand wirklich so wenig von PHP verstehen kann


    Oh doch... :mrgreen:

    Zitat

    Edit: das Problem scheint doch an anderer Stelle zu liegen, es springt wohl gar nicht in die [COLOR="Red"]if-Schleife[/COLOR] rein. Melde mich zurück wenn ich weiter bin...


    if-schleife.de
    Nichts für ungut... :D

  • geschafft!

    so, nachdem ich 2 Stunden vor dem Problem stand wie der Ochs vorm Berg, scheint es nun zu funktionieren:

    Also natürlich zuallererst mal $redirect_is_id aus der DB holen, und dann bei der if-Abfrage (edit: hihi, if-schleife... ja, diesmal sogar zufällig auf Anhieb richtig geschrieben ;)) den richtigen Wert in single quotes abfragen.

    Danke marX nochmal für die Unterstützung und Gute Nacht (werd heut bestimmt von PHP träumen ;))!

    Einmal editiert, zuletzt von BZ (9. Juni 2009 um 00:03)

Jetzt mitmachen!

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