Shortcodes und benutzerdefinierte Felder

  • Hallo :)

    leider habe ich im Forum und mit Google nicht wirklich wirklich was zu dem Thema gefunden, aber vielleicht kann mir ja trotzdem jemand helfen?
    Und zwar würde ich gerne die Shortcodes benutzen um in manchen Beiträgen einen Downloadlink anzubieten der durch benutzerdefinierte Felder generiert wird!

    Eine super Anleitung habe ich auch schon bei Frank Bueltge gefunden -> Link

    mein Problem wäre damit ja auch schon fast gelöst ;-) das dumme ist nur wenn ich diesen Code in meine functions.php einfüge habe ich sofort eine Fehlermeldung in meinem Browser.

    PHP
    Parse error:  syntax error, unexpected '&' in /var/www/xxx/xxx/xxx/xxx/functions.php on line 9

    Kann mir ein PHP Experte 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

  • Vielleicht ließt er ja mit ;-) (wenn der Link in seiner WordPress Administration angezeigt wird).
    Ansonsten schreibe ich es ihm noch auf jedenfall :-D


    Eine Frage habe ich noch:
    Wie muss ich den Code verändern das der Link zum Bild immer fest ausgehend vom Template ist?

    Immer wenn ich versuche bloginfo(template_directory) einzubauen bekomme ich Fehlermeldungen auf dem Schirm. Leider hab ichs nicht so mit den PHP Strings...

    Da der Downloadlink als Bild dargestellt wird und dieses sich in dem Template Ordner befindet wäre es nach einiger Zeit ziemlich mühsellig immer den kompletten Link anzugeben. Zumal der sich ja auch mal ändern kann (bei Domainumzug usw)!

    Ich hatte mir den Code so vorgestellt:

    PHP
    return '<a href="' . $mylink[0] . '"><img src="' . bloginfo("template_directory")/$mypic[0] . '" alt="" /></a>';
  • Vielleicht ließt er ja mit ;-)


    Ich bin mir ziemlich sicher, dass Frank hier im Forum mitliest. ;-) Aber so ein Thread geht auch schnell mal unter.

    Zitat

    Immer wenn ich versuche bloginfo(template_directory) einzubauen bekomme ich Fehlermeldungen auf dem Schirm. Leider hab ichs nicht so mit den PHP Strings...


    Na ist doch fast richtig. ;-)

    Code
    return '<a href="' . $mylink[0] . '"><img src="' . [COLOR="Red"][B]get_[/B][/COLOR]bloginfo("template_directory")[COLOR="#ff0000"][B] . '/' . [/B][/COLOR]$mypic[0] . '" alt="" /></a>';


    Der Haupttrick ist die get_bloginfo()-Funktion, da bloginfo() ein explizites "echo", d.h. eine Ausgabe enthält. (Ich bin mir jetzt aber nicht 100% sicher, ob get_bloginfo() an der Stelle funktioniert - probiers aus!)

  • Es funktioniert super. Ich danke dir marX.

    Vielleicht ist das ganze mal ein Thema für das deutsche WordPress Codex ;-) wenn ihr schon Leute wie dich und Frank im Team habt.

    Ich probier jetzt noch bissle mit festen Bildangaben in der functions.php rum... Hoffentlich komm ich da ohne fremde Hilfe weiter :-D

  • Falls mal jemand danach suchen sollte - ich habe mir die Funktion soweit geändert das ich bei Bedarf nur noch ein bzw. zwei benutzerdefinierte Felder ausfüllen muss:

  • Ich danke vielfach für den Hinweis und ich habe den Code im Beitrag direkt angepasst. Leider komme ich nicht nach um alle Links zu lesen.

    Da ich WP nur in meiner Freizeit betreibe und durch WPD doch auch andere Aufgaben dazu kamen, muss ich irgendwo streichen.

    Für das Thema Codex bzw. dt. Doku sind wir in Arbeit, aber es viel zu tun und nicht gerade die schönste Arbeit.

  • Die Funktion ist echt spitze.
    So langsam nutze ich die auch echt viel aus.. Dabei bin ich auf Szenario gestossen bei dem ich etwas zu viel in die functions.php schreiben muss, womit das ganze auch nicht mehr flexibel wird!

    Und zwar möchte ich auf einer Seite alle Autoren auflisten. Ich habe mir ein Layout dafür zusammengebastelt. Das ist das Ergebnis:

    Außer das es noch sehr unübersichtlich ist, sieht es einfach nur grauenhaft aus und ist schwer von anderen zu pflegen.
    Nun will ich das ganze mit Shortcodes realisieren. Meine Idee: In der functions.php eine Funktion eröffnen, dort alles notwendige reinpacken (Beispiel folgt gleich), Bilder und Infos durch Benutzerdefinierte Felder bestimmen und dann den ganzen Schub mit [autor] in den Beitrag packen.

    Mein Gerüst für die functions.php:

    1. Wie schaffe ich es jetzt aber das ich benutzerdefinierte Felder mehrmals nutzen kann?

    2. Sinnvoll wäre zudem wenn ich die Autoren nach dem folgenden Prinzip auflisten kann.

    Code
    [autor id="andreas"]

    Das die functions.php halt merkt das ich jetzt id="andreas" aufrufe und dann die Bilder und die Infos auflistet die ich davor in den benutzerdefinierten Feldern angelegt habe.

    Sorry für den langen Beitrag :)
    Ich hoffe es hat jemand eine Idee in die richtige Richtung?!

    Vielen Dank schon jetzt für die Mühe beim lesen :mrgreen:

  • Eine kleine Ergänzung!

    Ich habe es nach etwas suchen und basteln geschafft schon mal das lästige div um die bilder und die beschreibung durch ein shortcode zu ersetzen.

    Die Funktion:

    PHP
    function die_autoren_div( $atts, $content = null ) {
       return "<div class='wp-caption alignnone' style='width: 178px'>\n\n" . $content . "\n\n</div>\n\n";
    }
    
    
    add_shortcode('autor_div', 'die_autoren_div');

    Soweit so gut.
    Leider versteht WordPress das nicht so wie ich das meine :(
    Im Quelltext packt es mir nämlich <p> Elemente wo sie nicht hingehören!!!

    HTML
    <div class='wp-caption alignnone' style='width: 178px'>
    
    
    <a rel="lightbox[roadtrip]" href="xxx/wp-content/uploads/2008/10/xxx-gross.jpg"><img class="size-medium" src="xxx/wp-content/uploads/2008/10/xxx.jpg" alt="" width="168" height="90" /></a></p>
    <p class="wp-caption-text"><strong>Name:</strong> xxx<br />
    <strong>Geburtstag:</strong> xxx<br /></p>
    <p></div>

    Leider kann ich die stören <p>'s nicht highlighten aber es ist einmal das </p> nach dem schließenden </a> und einmal das letzte <p> vor dem schließenden </div>

    Hat jemand eine Idee wie ich die wegbekomme?
    Ich hätte schon gernen validen xHTML Code ;-)

  • Für die Ausgabe der Nutzer gibt es einen Syntax, kann man an das User-level der Autoren anpassen, so dass nur Autoren gelistet werden. LINK

    Alternativ geht auch eine einfache Ausleitung, muss man an die Bedürfnisse anpassen.

    Einmal editiert, zuletzt von Alphawolf (5. November 2008 um 10:56)

Jetzt mitmachen!

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