'Includen' von Codeblöcken unter Blogposts?

  • Sorry für den Titel ;D
    Was ich tatsächlich fragen möchte:
    Aus Gründen der Flexibilität und weil ich nicht mehr Plugins verwenden möchte, als dringend notwendig, habe ich mir eine eigene Author-Infobox zusammengestylet, die am Ende eines jeden Artikels eingefügt werden soll (manuell mit Copy/Paste).
    Da sich mein Blog noch in der Entwicklungsphase befindet, ist alles an Struktur und Optik noch nicht richtig fix, d.h. es kann da noch zu einigen Änderungen kommen.
    Das Aussehen der Box wird ja über das externe CSS geregelt, das ist also kein Problem, da nachträglich noch was anzupassen.
    Beim tatsächlichen Inhalt sieht es allerdings schon anders aus.

    Ich hab fast keine Ahnung von PHP, aber ich hatte mir überlegt: Gäbe es nicht vlt. die Möglichkeit, die Codeblöcke, die die Infoboxen darstellen ( <aside class="authorbox">Jon Doe...</aside>, irgendwie separat zu lagern und via include oder so ähnlich bei Bedarf unter die entsprechenden Artikel zu pasten...?

    Wenn es dann nochmal zu nachträglichen Änderungen käme, müsste man das nicht unter 20 verschiedenen Blogposts koprrigieren, sondern einfach nur im zentralen Codeblock.

    Jemand eine Idee? :)

    • 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 sind ja extra die verschiedenen Templates eines Themes, z. b. die single.php

    [size=10]Bitte immer zuerst die Forensuche nutzen und erst danach Deine Fragen hier im Forum stellen, denn sehr vieles wurde schon mehrfach beantwortet. Bitte dabei auch die Forenregeln beachten.
    Kein Support per PN - Fragen gehören ins Forum.[/SIZE]
    [size=8]Wenn du eine weise Antwort verlangst, musst du vernünftig fragen. (Johann Wolfgang von Goethe)[/SIZE]

  • Hängt ein bisschen davon ab, ob und was für „Regeln“ es gibt, unter welchen Beitrag welche Autoren-Info soll.

    Mir fällt dazu entweder eine Widget-Area unter jedem Blogpost ein. Das ist aber nur dann wirklich gut, wenn es relativ klare Regeln sind, wann welche Info kommen soll. Sonst definiert man sich da irgendwie tot …
    Die andere Möglichkeit wäre, für jede Autoren-Info eine eigene html- bzw. php-Datei zu schreiben und Shortcodes zu definieren, die dann über get_template_part() zulassen, die gewünschte Autoren-Info einzufügen.

    Gruß
    helix

  • Achso, ich hätte vlt. noch explizit erwähnen sollen, dass es ein kollaborativer Blog ist, es also verschiedene AutorInnen gibt. (und ich es auch gut fände, wenn man zudem flexibel variierenden Info-Text zu den einzelnen AutorInnen angeben könnte)

    helix, Letzteres klingt eigentlich ziemlich genau in die Richtung, was ich brauche!

    ...

    Ich hab mal fix gegoogelt.
    Bin ich hier auf dem richtigen Weg?

    In die functions.php trage ich ein (einfach so, irgendwohin?):

    [FONT=lucida console]function authbox_john(){
    return '<aside class="authorbox">
    <h1>John Doe</h1>
    <img src="passbild.jpg" /><br />
    Blabla blu.
    </aside>';
    }
    add_shortcode("authb_john","authbox_john");


    [/FONT]Und unter Johns Artikel kommt einfach:[FONT=lucida console]

    [authb_john]

    [/FONT]So einfach?
    (Ich kannte Shortcodes bisher nur von Plugins. Bin noch nicht so lang im Geschäft^^)
    Und für die verschiedenen AutorInnen lege ich dann jeweils auch so ein obiges Teil an.

    Und wenn es das tatsächlich ist:
    Gäbe es auch die Möglichkeit, die Funktionen(?) nicht in der functions.php zu lagern, sondern irgendwie in einer eigenen Datei? Da wird in meinem Fall nämlich einiges an AutorInnen zusammenkommen und ich würde ungern meine functions.php so vollmüllen.^^

  • Grins. Ehrlich gesagt, ich habe noch nie Shortcodes angelegt … reicht ja, zu wissen, dass es darüber geht, falls man es mal braucht.
    Heißt: wenn es so funktioniert, wie von dir gepostet, wird es wohl richtig sein. Und sonst – wenn du es jetzt über diesen Weg angegangen bist, wirst du dann auch einen möglichen Fehler schnell finden. Insofern gilt wohl: Ja, so einfach.

    Ja, du kannst Teile aus deiner functions.php in andere Dateien auslagern und diese dann mit require_once() in der functions.php einbinden.

    Eine andere Möglichkeit wäre, dass du pro Autoren-Info eine eigene html- bzw. php-Datei schreibst, diese im Template mit get_template_part() einbindest – in die Klammer schreibst du nicht hard coded den Namen, sondern lässt ein benutzerdefiniertes Feld ausgeben, in das der jeweilige Name eingetragen wird.
    Und wenn die Autoren-Infos ebenfalls im Admin-Bereich pflegbar sein sollen, diese vielleicht als Beiträge der Kategorie Autoren-Info oder als Custom-Post-Types anlegen …

    Gruß
    helix

  • Also die sinnvollste Variante für soetwas ist sicher, daß du dazu die Benutzverwaltung von WP verwendest.
    Da legst du einfach ein zusätzliches Feld an.
    Und den Inhalt dieses Feldes gibst du über die entsprechende Template Datei aus.
    (Content gehört in die Datenbank - auch die Autoren Infos)

  • pixselig: Hm, nach erster Begoogelung sieht mir das nach was aus, wo ich erstmal sehr intensiv in die Materie einsteigen müsste... :\ Dazu fehlen mir im Moment leider die Ressourcen.

    Ich werde wohl erstmal bei der Shortcode-Herangehensweise bleiben. :)

  • Ector, das sieht wirklich nach einer guten Anleitung aus - aber wie ich weiter oben schon schrieb, brauche ich was flexibleres, was z.B. auch mehrere AutorInnen für einen Artikel umfasst und evtl. auch unterschiedliche Infotexte zu einem Autor für verschiedene Artikel... :\

  • Ich fand pixseligs Einwand, dass Autoren-Info-Texte ins Userprofil gehören, sinnig. (Das mit der Datenbank würde ich nicht hundert Pro so unterschreiben, aber man bleibt damit in der WordPress-Logik …)
    Ein Feld hättste dafür im User-Profil – das über-mich-Feld. Für weitere Felder im User-Profil oder auch für die „Verwaltung“ – d.h. dass die Autoren oder ihre Info dann auch angezeigt werden – mehrerer Autoren gibt es Lösungen. Allerdings stößt man zuerst auf die PlugIn-Lösungen.

    Ich habe aber die Einschätzung, dass es sich lohnen würde, tiefer einzusteigen … Schließlich willst du eine Lösung, die auch mit zehn Autoren mehr immer noch komfortabel zu bedienen ist.

    Eine Suchanfrage mit „wp different profiles for one user“ war schonmal ziemlich ergiebig.

    Gruß
    helix

  • Also die sinnvollste Variante für soetwas ist sicher, daß du dazu die Benutzverwaltung von WP verwendest.
    Da legst du einfach ein zusätzliches Feld an.
    Und den Inhalt dieses Feldes gibst du über die entsprechende Template Datei aus.
    (Content gehört in die Datenbank - auch die Autoren Infos)

    ill66.... glaub pixselig und SirEctor. Spätestens, wenn der zehnte Author dich um seine eigene Infobox bittet (und Du mal wieder nen Shortcode anlegen musst) wirst Du dich an die Hinweise erinnern. Und beim Zwanzigsten wirst Du eine neue Lösung implementieren und kannst dann im schlimmsten Fall alle Shortcode Tags aus den bereits bestehenden Beiträgen entfernen, weil Du den ganzen Code-Wust aus deiner functions.php raushaben willst ;)

  • Gnah... Ich glaub Euch das ja unbesehen! Und die jetzt schon immer voller werdende functions.php passt mir auch gar nicht.
    Aber es ist halt so, dass ich grade noch gut 2 Wochen bis zur Deadline hab und noch so viel Kleinkram zu machen ist.
    Hinzu kommt, dass ich in den letzten 2 Monaten annähernd Vollzeit an diesem Projekt gearbeitet hab (Sportverletzung mit gebrochenem Wirbel machts möglich^^) - und in der Zeit hab ich sooo viel Neues gelernt und lerne immer noch! Was supertoll ist, aber auch megamega anstrengend (ich rechne jederzeit damit, dass der Rauchmelder hier losgeht :mrgreen: ). Ich hab nämlich davor noch nie wirklich richtig was mit WP gemacht.

    Und wo ich das von pixsel nur angegoogelt hab, hat mir das schon den Schweiß auf die Stirn getrieben - plus, dass ich hier ja etwas speziellere Anforderungen hab (mehrere AutorInnen, ggf. unterschiedliche Bio-Texte für AutorInnen). Da ists dann ja leider auch nicht damit getan, eben ein Tutorial zu googeln und das nachzubauen.

    Habt Ihr eigentlich sowas wie eine Faustregel, wieviele Plugins pro Projekt so statthaft sind? :D

    Edit: Achso, die weiteren Ansprüche hatte ich ja noch gar nicht genannt. Aktuell hab ich es so gebastelt, dass Neben dem AutorInnennamen in der Box auch noch in Form von (grafischen) Icons diverse SocialMedia- und Webseiten der Leute verlinkt sind. Und unterm Biotext hab ich noch einen Textlink zur Teamseite und zu "alle Artikel [der Person]".^^°

    Einmal editiert, zuletzt von ill66 (15. Oktober 2016 um 01:19)

  • ... Habt Ihr eigentlich sowas wie eine Faustregel, wieviele Plugins pro Projekt so statthaft sind? ...

    Einsetzen kannst du so viele du magst, nur das auf dem Server fest gesetzte php memory limit setzt die Grenze, da php Dateien ein Stückchen davon anknabbern um laufen zu können. ;)
    Allerdings solltest du im Hinterkopf behalten, dass das Projekt dann mit den Plugins steht und fällt. Ist ein Plugin nicht mehr kompatibel, wenn WP Updates anstehen und der Author hat eventuell den Support, oder gar die Weiter Entwicklung eingestellt bist du ziemlich gear... äh angeschmiert. Daher ist es immer ratsam so viel als möglich ohne Plugin umzusetzen, da es unter Umständen die Recourcen enorm schonen kann und du nicht in Bedrängnis kommst, wenn Updates gemacht werden müssen. :D

    Bitte keine Fragen per PM, oder Foren-Chat. Für Fragen ist das öffentliche Forum da. Meine Uerdinger Seite

    Einmal editiert, zuletzt von Marcus[IS] (15. Oktober 2016 um 03:19)

  • Genau, das ist auch mein Stand der Dinge.^^
    Weswegen ich jetzt guck, so viele Plugins wie möglich loszuwerden - z.B. bau ich grade meine Team-Seite nochmal selber neu, damit ich das Team-Plugin rausschmeißen kann. :)

    Nochmal zu meinem Ausgangsproblem. Angeregt durch die Beiträge hier hab ich jetzt mal damit epxerimentiert, Autorboxen via singles.php automatisiert einzubinden.
    Ich hab dazu diese Anleitung verwendet: https://www.wpkube.com/how-to-add-aut…wordpress-posts

    Ganz überzeugt bin ich noch nicht... Folgende Probleme hab ich dabei bisher:
    * Ich hätte gern neben dem Namen grafische SocialMedia-Buttons, falls bei dem Autor welche vorhanden sind
    * Ich will mich nicht an Gravatar binden und hab deshalb gerade das WP User Avatar Plugin installiert - ist es möglich, auf das selbst hochgeladene Bild zuzugreifen für die Box, statt auf Gravatar bzw Schattenmann?
    * Wie kann ich statt "See all posts by <?php the_author_posts_link(); ?>", wo ja der Name nochmal ausgegeben wird, stattdessen einfach "See all posts" verlinken (also ohne dass der Name da nochmal ausgeschrieben steht, aber trotzdem mit entsprechend automatisch generiertem Link
    * Gibt es eine Möglichkeit, die Box überhalb der default WP-SocialShare-Buttons anzuzeigen, statt darunter (hab rumprobiert, aber ohne Erfolg)

    (...oder sollte ich dafür einen neuen Thread machen?)

  • Hm, kann nur allgemeine Hinweise geben …

    Das WP User Avatar Plugin wird für das Avatar-Bildchen eine Box bereitstellen oder eine vorhandene Box umwidmen. Ausfindig machen, wie die Box vom PlugIn aufgerufen und ausgegeben wird. Das für die eigene Ausgabe nutzbar machen.

    See all posts by …
    In solchen Fällen bin ich häufig weitergekommen, wenn ich im WP Codex die Ausführungen zur zugrundeliegenden Funktion studiert habe. Also z.B. in dem Fall suchen nach „wp codex the_author_posts_link();“
    Oft findet sich dort schon was. Oder man stößt dann auf die passenden Suchstichworte, mit denen man bei stackoverflow oder ähnlichen Portalen was hilfreiches findet.

    Gruß
    helix

  • Danke, Spickzettel!
    Das Nicht-Gravatarbild wurde jetzt auf einmal irgendwie von selbst angezeigt ?_?

    Was jetzt noch offen bliebe:
    * Social-Icons einbinden
    * Händlen von 2 AutorInnen (was dann vermutlich auch wieder den String von Spickzettel sabotiert)
    * Einfügen eines Links zur Teamseite mit passender Sprungmarke #AutorX
    * Minor: Autorbox überhalb den Sharebuttons platzieren
    * Minor: Möglichkeit Verwendung unterschiedlicher Bio-Texte für einen Autor

  • Und parallel für den anderen Ansatz nochmal gefragt:

    Ja, du kannst Teile aus deiner functions.php in andere Dateien auslagern und diese dann mit require_once() in der functions.php einbinden.


    Könntest Du mir ienmal bitte kurz sagen, wie genau der Befehl aussehen muss? :( Hab grade alle möglichen Versionen durchprobiert, die Google mir gesagt hat - aber entweder gabs einen Eroor (weil der Pfad vermutlich nicht gestimmt hat) - oder der Inhalt der ausgelagerten Datei wurde komplett über dem Header eingefügt. Beides nicht so ganz in meinem Sinne -.-

    Zitat


    Eine andere Möglichkeit wäre, dass du pro Autoren-Info eine eigene html- bzw. php-Datei schreibst, diese im Template mit get_template_part() einbindest – in die Klammer schreibst du nicht hard coded den Namen, sondern lässt ein benutzerdefiniertes Feld ausgeben, in das der jeweilige Name eingetragen wird.


    Hm, das sollte dann theoretisch auch mit mehreren Autoren bei einem Artikel möglich sein, oder?
    (wie das umzusetzen wäre, müsste ich dann natürlich noch ergründen^^)

  • In meinem Basis-Template sieht das mit den ausgelagerten Funktionen aus der functions.php so aus:

    PHP
    define( 'MY_LIBRARY', TEMPLATEPATH . '/library' );
        require_once(MY_LIBRARY . '/menus-anmelden.php'); // eigene Nav-Menüs
        require_once(MY_LIBRARY . '/widgets-anmelden.php'); // Widget-Bereiche definieren, auskommentieren, solange nicht benötigt
        /*require_once(MY_LIBRARY . '/metaboxen-anmelden.php'); // Metaboxen für den Adminbereich definieren, auskommentieren, solange nicht benötigt*/


    Es gibt also einen Ordner „library“ im Theme-Ordner. Was mit require_once eingebunden wird, muss dann auch im Ordner drinliegen, sonst gibt es gleich eine Fehlermeldung.
    An meinen Auskommentierungen siehst du gleich, was ich wie häufig brauche …
    (Nein, ich habe das nicht selber erfunden, sondern auch mal wo gefunden, weiß jetzt leider nicht mehr wo; fand es halt nützlich)

    Mehrere Autoreninfos: Ja, ich gehe auch davon aus, dass das geht. Wäre aber noch zu überprüfen … Manchmal denke ich Unsinn.
    Schau mal hier: https://developer.wordpress.org/reference/functions/get_post_meta/
    und wie weit du damit kommst.
    Bin etwas in Eile, d.h. sollte mich mal tunlichst etwas um Erwerbsarbeit kümmern … grins …

    Gruß
    helix

Jetzt mitmachen!

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