Content durchsuchen

  • Hallo!

    Ich möchte mit php immer den aktuellsten post innerhalb einer festgelegten Kategorie nach einer Zeichenkette ('http...') durchsuchen und diese Zeichenkette dann herausschneiden. Mit php einen String zu durchsuchen und daraus die gesuchte Zeichenkette heraus zu schneiden ist keinerlei Problem. Das einzige was ich nicht hinbekomme ist das wandeln des gewünschten post content in einen String.

    Schonmal danke für eventuelle hilfestellungen ;)

    • 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

  • Dafür solltest Du Dir ein kleines Plugin schreiben....

    Da definierst Du Dir eine Funktion

    function abc_irgendwas($the_content) {....}

    in welcher Du den Content überarbeitest (und vorher noch ermitteln mußt, ob Du gerade im aktuellsten Post der Kategorie bist, in welcher Du das ganze durchführen willst.... dürfte aber mit "global $post;" wahrscheinlich nicht weiter schwierig sein, da Du damit über alle Daten des aktuell -> verarbeiteten <- Posts verfügst..... $post->ID etc. pp.).

    Diese Funktion meldest Du am Ende des PlugIns (vorgaben gibt's ja bei jeder Installation wie Sand am Meer ;) ) mit "add_filter("the_content", "deine_funktion"); als Filter für den Kontent an.... Danach kannst Du dann mit dem Kontent in Deiner Funktion machen was Du willst....

    vG

    Arno

    [edit]PS als Beispiel für ein solch kleines PlugIn kannst Du auch das von mir in diesem Beitrag hinterlegte nehmen.[/edit]

    Feedback ist Wichtig!|FAQ|Rückfragen im Forum!|Wenn ich mal was vergesse.... einfach mal sagen...

    Einmal editiert, zuletzt von Arno Simon (11. Dezember 2005 um 02:34)

  • Ok, das habe ich soweit verstanden. Quasi das ganze wie ein Filter machen.

    Aber das problem ist, das ich das ganze in der Searchbar anzeigen lassen will. Und in der Searchbar selber wird ja kein post content angezeigt den ich filtern lassen könnte. :(

    Edit: Also im konkreten Beispiel will ich in der Searchbar das aktuelleste verlinkte Bild innerhalb einer Kategorie anzeigen. Nur irgendwie komm ich von der Searchbar aus, nicht an die content daten innerhalb einer Kategorie. Also in String form.

    Einmal editiert, zuletzt von Kanegou (11. Dezember 2005 um 12:27)

  • Nun, das was Du mit dem Filter aus dem Content herausschnippelst, kannst Du in eine globale Variable schieben.

    Im Plugin:

    Code
    $kan_sidebar_picture = "";
    
    
    function kan_content_filter($the_content) {
     global $kan_sidebar_picture; /* anschließend das image-tag besorgen und reinschmeissen */
    }

    In der sidebar.php sollte dann mit

    Code
    global $kan_sidebar_picture;

    die Variable ebenfalls zur Verfügung stehen, so das Du sie "nur noch" mit echo rauszuschmeissen brauchst, sofern denn gefüllt.

    vG

    Arno

    Feedback ist Wichtig!|FAQ|Rückfragen im Forum!|Wenn ich mal was vergesse.... einfach mal sagen...

  • Ok, danke. Die Funktion läuft nun also Filter Plugin und füllt die globalen Variable ordnungsgemäß. Anzeigen in der Searchbar geht nun auch.

    Nur das Problem ist, wie kann ich feststellen ob der Post der aktuellste einer bestimmten Kategorie ist, auch wenn ich mich in einer anderen Kategorie befinde. Also ich will das er bei der Filterung immer nur den aktuellsten aus einer bestimmten Kategorie verwendet. In der WP doku habe ich was von get_posts gelesen, jedoch hat das irgendwie auch net funktioniert. Du sagtest ja noch was mit $post->ID... aber dazu konnte ich nix finden :(
    Naja, und die feste ID hilft mir ja auch nicht, weil ich ja nicht weiss welche ID der neuste post innerhalb einer anderen Kategorie hat.

    Edit: Ahhh.... ich bin in vor lachen in Tränen ausgebrochen als ich sah was für eine Fehler ich ständig machte. Ich habe beim vergleich mit "=" immer nur ein gleichheitszeichen verwendet. Bin das von Delphi her gewöhnt... ARGH...

    Edit2: So, funktioniert schon fast perfekt. Nur das Problem ist, wenn ich in einer anderen Kategorie stehe :/

    Einmal editiert, zuletzt von Kanegou (11. Dezember 2005 um 16:47)

  • Code
    // Verweis auf die Datenbank
    global $wpdb;
    $search_cat_id = 1;
    $last_post = $wpdb->get_var(" SELECT ID FROM $wpdb->posts WHERE post_category = ".$search_cat_id." ORDER BY post_date DESC");
    $myPost = get_post($last_post);

    Damit solltest Du 1. immer den zuletzt erstellten (nicht geänderten!) Post der zu durchsuchenden Kategorie bekommen. 2. Solltest Du Dein PlugIn umbauen und es nicht mehr als Filter laufen lassen, sondern kannst diese Funktion direkt in die SideBar einbauen. Sie wird dann nur ein mal - statt ggf. mehrfach - durchlaufen.

    vG

    Arno

    Feedback ist Wichtig!|FAQ|Rückfragen im Forum!|Wenn ich mal was vergesse.... einfach mal sagen...

  • Danke, das dürfte soweit funktionieren. Nur bei mir waren die Kategorien in einer weitern Tabelle, aber über ein einfaches inner join war das auch erledigt :)

    Edit:

    Code
    $wpdb;
    $search_cat_id = 3;
    $last_post = $wpdb->get_var(" SELECT ID FROM $wpdb->posts INNER JOIN $wpdb->post2cat ON $wpdb->posts.ID = $wpdb->post2cat.post_id WHERE $wpdb->post2cat.category_id = ".$search_cat_id." ORDER BY post_date DESC");
    $myPost = get_post($last_post);

    Funktioniert perfekt! Tausend dank!

    Einmal editiert, zuletzt von Kanegou (11. Dezember 2005 um 18:52)

Jetzt mitmachen!

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