Artikel/Beitrag als externe Verlinkung "Missbrauchen"?

  • Hallo liebe Wordpress Community :)

    Für die eiligen starte ich mal die Kurzfassung:
    Ich hätte gerne, dass wenn man auf einen Beitrag klickt (also auf die Vorschau auf der Startseite), dass man dann zu einer externen Verlinkung gelangt, und nicht zur Beitragsseite. Ist dies irgendwie umsetzbar? Template: Fara

    Details:
    Ich habe mir Wordpress Multisite installiert. Mein Plan ist es nun, das Fara Template zu "missbrauchen", indem die Beitragsanzeige auf der Startseite als Verlinkung auf die verschiedenen Multisites dienen soll, anstatt auf einen wirklichen Beitrag. Denn ich finde das das mit dem Fara Design sehr gut umsetzbar ist. Nun ist es aber leider so, dass Fara nunmal diese Beitragsanzeige auf der Startseite wirklich nur für Beiträge anzeigt, nicht für Seiten oder sonstiges.
    Und das ist mein Problem. Wie schaffe ich es, dass ich einen Beitrag als direktverlinkung missbrauchen kann? Ich habe schon überlegt eine Weiterleitung dort im Beitrag einzubauen, was mit von der Idee her aber nicht so gefällt. Ich hätte gerne dass man von der Fara Startseite direkt auf die Multisite gelangt ohne so einen Weiterleitungskram.

    Und ich weiß, ich könnte natürlich auch ein normales Menü erstellen und dort die externen Links einbauen. Aber das ist nicht mein Ziel. Ich möchte tatsächlich diese Fara Beitragskästchen für eine Verlinkung auf die verschiedenen Multisites verwenden. Die Frage ist, wie.. :/

    • 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

  • du könntest z.B. über die .htaccess ein Redirect einrichten.

    [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]

  • du könntest z.B. über die .htaccess ein Redirect einrichten.


    ähm... zu Sicherheit wollte ich nochmal erwähnen, dass ich natürlich auf verschiedenen Multisites mit verschiedenen News-Beitrag-Kästchen umleiten will, und nicht nur auf eine Seite einmalig. Nur nochmal als Hinweis, da ich immer selbst ein wenig zweifel ob mein geschreibe verständlich genug war^^

    Ansonsten danke ich dir schonmal für den Tipp, muss jedoch sagen, dass das ein wenig meinen Kenntnisstand sprengt.
    Hättest du vielleicht Zeit mir dazu etwas genauer zu helfen, oder gibt es da irgendwo eine Seite mit etwas Hilfestellung?
    Also was die [COLOR=#333333].htaccess ist weiß ich schon, nur wie ich dort ein [/COLOR][COLOR=#333333]Redirect einrichte... da hörts leider schon auf :/[/COLOR]

  • ich habe das auf einer meiner Domains umgesetzt

    die Erklärung dazu ist älter,
    aber nicht falsch deswegen :-)
    zumindest gehts bis heute anstandslos und wie immer: das ist einer von vielen Wegen

    http://www.texto.de/aus-der-praxis…chrichten-1642/

  • Aaaaalso, nochmal aufholen, was du wirklich willst … Wenn ich dich richtig verstehe, haben die anderen dich nicht richtig verstanden … du drückst dich aber auch ein bisschen unklar aus in Bezug auf „verschiedene Multisites“ …

    Du hast eine Multisite?
    Die besteht aus mehreren / vielen Einzelseiten mit jeweils eigener URL, vielleicht sogar eigener Domain.
    Du willst jetzt von der Startseite deiner Hauptseite / Hauptdomain aus auf die einzelnen Unterblogs / Unterseiten kommen, die ja eigene URLs / eigene Domains haben – also externe Links?

    Und weil dir die Darstellung der Beitragsübersicht auf der Startseite im Theme Fara gefällt, willst du dir dieses umbauen?

    Meine Antwort: geht.

    Erster Schritt: erstelle dir ein Child-Theme.

    Dann passe dir das Template, das für die Ausgabe der Startseite zuständig ist, entsprechend an. Soweit ich das auf den ersten Blick erkennen kann, ist das die Datei content.php
    Insbesondere musst du die Ausgabe der Permalinks (zum Beitrag) anpassen, d.h. durch deine eigenen Links ersetzen.
    Weil du das ganze ja bestimmt gerne dynamisch haben willst, bringst du dafür sinnigerweise jeweils ein benutzerdefiniertes Feld zum Einsatz, d.h. statt des Permalinks lässt du den Inhalt deines benutzerdefinierten Feldes ausgeben.

    Das ist jetzt in Kurzform.
    Ich habe keine Ahnung, wie dein Kenntnisstand ist. Man kann das dann nochmal ausführlicher Schritt-für-Schritt aufholen. Hier geht es mir erstmal nur um die Struktur / das Grundprinzip. Und darum, ob ich dich richtig verstanden habe?

    Gruß
    helix

    ---

    Nochmal genauer in Monikas Beitrag gelesen. Doch, das ist auch ein Weg, etwas in deine Richtung umzusetzen.
    Ist ein bisschen abhängig davon, was auf deiner Startseite und mit dem Fara-Theme noch ausgegeben / dargestellt werden soll?

  • Aaaaalso, nochmal aufholen, was du wirklich willst … Wenn ich dich richtig verstehe, haben die anderen dich nicht richtig verstanden … du drückst dich aber auch ein bisschen unklar aus in Bezug auf „verschiedene Multisites“ …

    Du hast eine Multisite?
    Die besteht aus mehreren / vielen Einzelseiten mit jeweils eigener URL, vielleicht sogar eigener Domain.
    Du willst jetzt von der Startseite deiner Hauptseite / Hauptdomain aus auf die einzelnen Unterblogs / Unterseiten kommen, die ja eigene URLs / eigene Domains haben – also externe Links?

    Und weil dir die Darstellung der Beitragsübersicht auf der Startseite im Theme Fara gefällt, willst du dir dieses umbauen?

    Ja, genau so ist es geplant.
    Ich glaube du hast das richtig erkannt. Und sorry für meine komplizierte Beschreibung.
    Über eine genauere Anleitung wäre ich sehr dankbar.

    Als Anhang nochmal für alle in bildlicher Form was ich will, ohne viel Schnickschnack :)

  • Also gut: Dein erster Schritt: erstelle ein Child-Theme von dem Fara-Theme.
    Im WordPress-Codex wirst du fündig, wie es geht. Noch etwas genauer nehmen es die Netzialisten (freundlicherweise auch auf deutsch), die zur Sicherheit in der functions.php des Child-Themes erst das Stylesheet des Parent-Themes deaktivieren, um es dann neu zu laden und zu aktivieren über register_style und enqueue_style.

    Und dann noch eine Rückfrage: Hat bzw. bekommt deine Hauptseite weiteren / eigenständigen Inhalt, außer, dass sie eben (mittels der Fara-Darstellung) auf die anderen Seiten der Multi-Installation verweist?
    Auch wenn du z.B. zum jetztigen Zeitpunkt nicht ausschließen kannst, dass da eines Tages mal auch eigenständige Inhalte sind, sollten wir von Anfang an so aufbauen, dass sich da nix in die Quere kommen kann.

    Ach, und noch eine Rückfrage – wenn ich schon grade dabei bin: Wer pflegt die Seiten oder wird sie künftig pflegen? Es ist einfach ein Unterschied, ob man was für sich selber einrichtet oder ob sich jemand anderes darin zurechtfinden soll.

    Gruß
    helix

  • Pflegen werde nur ich sie, also nur ich muss klar kommen :D
    Weiterer Inhalt ... naja in wiefern? Also ich würde das normale Hauptmenü vielleicht auch noch aktivieren wollen und dort ein paar Menüpunkte hinterlassen. Und unten im Footer halt das Impressum verlinken. Sonst eigentlich nichts unbedingt :D

  • Okay. Bist du bereit (steht dein Child-Theme)?

    1.) Gib deiner Standard-Beitragskategorie einen sinnvollen und wiedererkennbaren Namen oder lege eine neue Kategorie mit sinnvollem und wiedererkennbaren Namen an, z. B. „netzwerkseitenteaser“ (oder auch mit Bindestrich „netzwerkseiten-teaser“).
    Du vergibst diesen Namen für dich und niemanden sonst. Ich finde es logisch, wenn der Name der Kategorie die Aufgabe beschreibt, die die Beiträge dieser Kategorie haben.

    2.) Lege Für jede deiner Netzwerkseiten einen Beitrag innerhalb dieser Kategorie an.
    Dabei kannst du von vorneherein schon dein Custom Field mit der URL zur jeweiligen Netzwerkseite anlegen, auch wenn wir es erst in einem späteren Schritt ausgeben.

    Eventuell musst du dir deinen Beitragseditor im Admin-Bereich erst so einstellen, dass die Custom Fields auch angezeigt werden: -> Ansicht anpassen -> Häkchen bei „Benutzerdefinierte Felder“.

    Jedes Benutzerdefinierte Feld hat Name und Wert. Der Name ist in jedem Beitrag gleich und kann normalerweise, einmal angelegt, in jedem neuen Beitrag dann ausgewählt werden. Den Namen brauchen wir, um nachher im Loop das benutzerdefinierte Feld anzusprechen und ausgeben zu lassen.
    Also nimm wieder einen Namen, der für dich aussagekräftig ist, z.B. „netzwerkseitenurl“.

    Als Wert trägst du jeweils die URL ein.
    Hier musst du eine Entscheidung treffen: Wenn du die URL wirklich nur für die Verlinkung brauchst, dann trage sie gleich vollständig mit allem trallalla ein nach dem Muster „http://www.deine-domain.tld/“ Ob mit oder ohne www ist deine Sache, ebenfalls, ob mit oder ohne abschließendem Slash (bzw. die Frage, was für dich der Standard ist).
    Wenn es sein kann, dass du die Webadresse der verlinkten Netzwerkseite auch für Menschen „lesbar“ ausgeben willst, ist es netter ohne http:// und eher auch ohne den abschließenden Slash.

    3.) Das ist ein helix-Kontroll-Schritt, den du nicht zwingend brauchst: Lege unter Einstellungen -> Lesen fest, dass die Startseite deine letzten Beiträge zeigt.
    Geh nachgucken, ob deine Seitenverlinkungsbeiträge so (im Fara-Style) ausgegeben werden, wie du dir vorstellst. Sollte so sein. Abgesehen natürlich von der Verlinkung, die noch zum Beitrag ist.

    4.) Lege eine statische Seite an, die du dann als Startseite festlegst.
    Inhalt unerheblich. Werden wir nachher sowieso nicht ausgeben …

    5.) Wieder ein helix-Kontroll-Schritt: Lege eine weitere statische Seite an, die du dann als Blog-Seite festlegst.
    Wieder nachgucken: Werden deine Beiträge dort wie gewollt im Fara-Style ausgegeben?

    Für mich sind diese Kontrollschritte hilfreich, weil ich es anstrengend finde, nur aus dem php-Code rauszulesen, wie und durch welche Template-Parts die Seiten ausgegeben werden. Wenn ich es dann schonmal auf meiner Seite beispielhaft ausgegeben habe, ist es für mich leichter zu verstehen und nachzuvollziehen.

    An dieser Stelle siehst du dann vielleicht auch schon, was du für deine Verlinkungs-Beiträge aus der Ausgabe alles streichen kannst / willst. Ich sehe z.B. auf der Theme-Seite, dass in der Beitragsansicht Datum und Kommentarmöglichkeit mit ausgegeben werden (nunja, letzteres sicher nicht, wenn du die Kommentare abwählst).
    Also: gucken. Notizen machen.

    Als nächstes gehen wir dann an das Seitentemplate für die Ausgabe deiner Startseite mit den Verlinkungen zu den Netzwerkseiten.

    Gruß
    helix

  • 2.) Lege Für jede deiner Netzwerkseiten einen Beitrag innerhalb dieser Kategorie an.
    Dabei kannst du von vorneherein schon dein Custom Field mit der URL zur jeweiligen Netzwerkseite anlegen, auch wenn wir es erst in einem späteren Schritt ausgeben.

    Eventuell musst du dir deinen Beitragseditor im Admin-Bereich erst so einstellen, dass die Custom Fields auch angezeigt werden: -> Ansicht anpassen -> Häkchen bei „Benutzerdefinierte Felder“.

    Jedes Benutzerdefinierte Feld hat Name und Wert. Der Name ist in jedem Beitrag gleich und kann normalerweise, einmal angelegt, in jedem neuen Beitrag dann ausgewählt werden. Den Namen brauchen wir, um nachher im Loop das benutzerdefinierte Feld anzusprechen und ausgeben zu lassen.
    Also nimm wieder einen Namen, der für dich aussagekräftig ist, z.B. „netzwerkseitenurl“.

    Hey. Leider scheitert es schon bei dem Schritt :/
    Custom Fields werden leider nicht angezeigt, und die Einstellung "Ansicht Anpassen" find ich leider irgendwie auch nirgends :/
    Kannst du mir vielleicht genauer sagen wo das steht?

  • So--jetzt--geht--weiter------- Sorry, dass es etwas gedauert hat.

    Jetzt geht es an das Template für unsere Spezial-Startseite.
    Schnapp dir die index.php aus dem Theme-Ordner des Parent-Themes (Fara), ab in einen sinnvollen Editor damit und gleich mal unter dem späteren Template-Namen abspeichern.
    Wenn du sicher bist, dass alle anderen Seiten (Blogs) in deiner Multi-Installation entweder ein anderes Theme nutzen oder garantiert keine Seite als Startseite (sondern letzte Beiträge) haben, kannst du sie front-page.php nennen. Sonst besser page-spezialblogshow.php oder irgendetwas in der Richtung, wo hinter page und dem Bindestrich etwas steht, was WordPress bestimmt nicht von selber wo zuordnen kann.

    Folgende Änderungen am Inhalt:

    Die Zeilen mit den Sternchen oben, das ist der Kommentarbereich. Hier schreibst du eine Beschreibung für dich rein, damit du weißt, wofür das Template gut ist.
    Wenn es (wahrscheinlich) eine page-irgendwas.php ist, ist es sinnvoll, wenn du eine Zeile mit dem Template-Namen drin hast, zum Beispiel:

    PHP
    * Template Name: Startseite Spezial-Blogshow


    „Startseite Spezial-Blogshow“ wird dir dann nachher im Admin-Bereich im Auswahlmenü der Seitentemplates angezeigt.

    Die Zeile

    PHP
    <?php if ( have_posts() ) : ?>

    streichen wir. (Das „else“ nachher streichen wir auch. Ich bin sicher, dass du die Beiträge angelegt hast, dass also Posts da sind …)
    Statt dessen fügen wir an dieser Stelle unsere eigene Query ein, damit nicht der Inhalt der Startseite ausgegeben wird, sondern unsere Seiten-Verlinkungs-Beiträge.

    PHP
    <?php $my_query = new WP_Query(  'category_name=netzwerkseitenteaser&amp;posts_per_page=-1&amp;order=asc'  ); ?>


    Hiermit legen wir fest, dass in unserer Query die Beiträge der Kategorie „netzwerkseitenteaser“ ausgegeben werden – wenn du deine Kategorie anders benannt hast, fügst du hinter „category_name=“ und dem „&amp;“ deinen Kategorieslug ein, der Wert -1 bei Posts per Page bedeutet, dass alle Posts dieser Kategorie ausgegeben werden, und wenn die Sortierreihenfolge asc nachher verkehrt herum ist, drehen wir einfach um, indem wir in desc ändern …

    Die Count-Anweisung

    PHP
    <?php $c = 0; ?>

    und später mit zwei Pluszeichen, lassen wir erstmal drin. Ich weiß nämlich nicht, wofür die eigentlich gebraucht wird – Page-Navigation (dann bräuchten wir es nicht) oder zur Auszeichnung der Einzelbeiträge?

    Wir löschen von

    PHP
    <?php  the_posts_navigation(); ?>

    bis

    PHP
    <?php endif;  ?>

    alles raus. Rest bleibt.

    Jetzt fehlt uns noch der eigentliche Loop. Der ist im Parent-Theme in einer eigenen Datei ausgegliedert. Wir kopieren ihn nachher in dieser Datei an der richtigen Stelle rein (an dieser Stelle ergibt diese Stückelung meiner Ansicht nach keinen Sinn).

    Ich schicke mal diesen Beitrag ab und mache in einem nächsten Beitrag weiter, sonst wird es ziemlich unübersichtlich.

    Gruß
    helix

  • Für den eigentlichen Inhalt (Loop) kopieren wir die content.php aus dem Parent-Theme komplett. Fast komplett. Die obersten 6 Zeilen – Kommentar + Leerzeile brauchen wir nicht.

    Und das Kopierte fügen wir anstelle des folgenden Codeschnippsels in unsere eigentliche Template-Datei:

    PHP
    <?php
    /* Include the Post-Format-specific template for the content.
    * If you want to override this in a child theme, then include a file
    * called content-___.php (where ___ is the Post Format name) and that will be used instead.
    */
    get_template_part( 'content', get_post_format() );
    ?>


    Wir includen ja genau nicht …
    Aufpassen, dass du die php-Tags mit rauslöschst, wir fangen ja mit dem, was wir einfügen, mit einem HTML-Tag an und hören auch wieder mit einem HTML-Tag auf.

    Du kannst jetzt eigentlich schonmal testen:
    Die neue Template-Datei in deinen Child-Theme-Ordner hochladen. Im Admin-Bereich deiner Spezial-Startseite dieses Template zuweisen (das ist – natürlich je nachdem, wie du es dir eingerichtet hast – meistens im rechten Bereich, dort wo auch festzulegen ist, ob die Seite Elternseiten hat etc.
    Und dann mal Seite im Browser aufrufen: Werden deine Beiträge ausgegeben? Oder kommt eine weiße Seite?

    Wenn weiße Seite, einfach wieder Standard-Template zuweisen oder Template über FTP umbenennen.
    Wäre gut, wenn wir dann mal über Debugging eine Fehlermeldung ausgeben lassen können. (Ich teste eben nicht mit, sondern arbeite nur im Quelltext. Das ist schon fehleranfällig, grins, zumindest bei mir.)

    Und wenn es ausgegeben wird: natürlich hast du jetzt noch die Links zu den Beiträgen drin. Das müssen wir in einem nächsten Schritt noch anpassen, dafür haben wir es ja gemacht …
    Und, wie weiter oben schon geschrieben – guck mal, was von den Angaben wie „posted on“ (wahrscheinlich „veröffentlicht am“) erscheint, und was du davon brauchst / haben willst und was nicht.

    Gruß
    helix

  • In die Zeile mit der Query hat sich ein Fehler eingeschlichen – irgendwie habe ich zu lange zum Schreiben gebraucht, zwischendrin hat die Vorschau-Funktion dann mal einige Zeichen in HTML-Entities gewandelt – und in der Codezeile sind jetzt noch welche drin, weil ich die übersehen habe: Also entweder die Zeichenfolge

    HTML
    &amp;

    durch ein schlichtes Ampersand (kaufmännisches und – &) ersetzen, oder hier nochmal die Codezeile in richtig:

    PHP
    <?php $my_query = new WP_Query( 'category_name=netzwerkseitenteaser&posts_per_page=-1&order=asc' ); ?>

    Gruß
    helix

  • Also die content.php Datei aus dem original Fara Theme kopieren, die ersten Codezeilen so wie von dir beschrieben ersetzen, und dann die Datei ins Child-Theme kopieren, hab ich richtig verstanden, oder? Denn nun bekomme ich folgende Meldung:

    Fatal error: Allowed memory size of 67108864 bytes exhausted (tried to allocate 640 bytes) in [...]/wp-content/themes/fara-linkliste/content.php on line 6

  • Wenn durch die pure Existenz einer Datei in einem Ordner auf dem Server eine Fehlermeldung hervorgerufen wird, löschst du natürlich als erstes diese Datei wieder vom Server. So kann es nicht stimmen.

    Deine Fehlermeldung ansich deutet eher auf zu wenig PHP-Arbeitsspeicher hin.
    Hätte sein können, dass du sie oder eine ähnliche bei einer fast-beliebigen anderen Veränderung an deinem System auch bekommen hättest. Schwer zu sagen.

    Ist denn die Fehlermeldung weg, wenn du die Datei wieder vom Server löschst?
    Wenn nein, solltest du dich als erstes um dein Memory-Limit kümmern.

    Dann: ist fara-linkliste der Name / Ordnername deines Child-Themes?
    Wenn ja, ist der Ordner richtig. Aber der Name deiner Datei ist falsch. content.php ist im Fara-Theme schon definiert. Wenn du deine Datei so benennst, versucht WordPress überall dort, wo normalerweise die content.php aus dem Fara-Theme aufgerufen wird, deine content.php aus dem Child-Theme aufzurufen. Das kann nur schief gehen.

    Also bitte, benenne die Datei wie vorgeschlagen mit page-eineeigeneergaenzung.php

    Und nimm bitte alle beschriebenen Änderungen vor, bevor du die Datei in deinen Child-Theme-Ordner lädst (obwohl es mit der korrekten Bennenung eigentlich nichts ausmachen dürfte).

    Gruß
    helix

  • Ahm ich glaub ich hatte das falsch verstanden. Ich dachte bei den Beiträgen gehts um verschiedene Dateien. Einmal [COLOR=#333333]page-eineeigeneergaenzung.php als Ausgabe der index.php Änderungen, und einmal Content.php.
    Aber ich kopiere statt dessen den Inhalt beider Dateien in einer (mit den beschriebenen Änderungen), ist das richtig? Dann hab ich noch nicht ganz verstanden, wo ich letztendlich den Inhalt der content.php Datei reinkopiere, nachdem ich die ersten Änderungen mit der index.php Datei vorgenommen habe?! content.php Inhalt einfach dann unten drunter? Oder wo kommt das hin, was im zweiten Beitrag deiner Erklärung beschrieben ist?
    [/COLOR]

  • Ja, mein Ansatz war, zwei in eins.

    Nein, der Inhalt der content.php packen wir anstelle des Codeschnipsel, der die content.php einbindet, mitten in die Datei, nicht unten hin. Steht genau erklärt im zweiten Beitrag dazu (Post #14)

    Gruß
    helix

  • Okay, das mit der Datei habe ich nun wohl hinbekommen. Jetzt läuft die Seite wieder, auch wenn sich bisher noch nichts verändert hat, sondern der Beitrag immernoch ein Beitrag ist. Ob als [COLOR=#333333]front-page.php oder auch mit beliebigen Namen.

    [/COLOR]Wahrscheinlich deshalb, weil mir dieser Schritt fehlt:

    Du kannst jetzt eigentlich schonmal testen:
    Die neue Template-Datei in deinen Child-Theme-Ordner hochladen. Im Admin-Bereich deiner Spezial-Startseite dieses Template zuweisen (das ist – natürlich je nachdem, wie du es dir eingerichtet hast – meistens im rechten Bereich, dort wo auch festzulegen ist, ob die Seite Elternseiten hat etc.

    Ich habe rumgeguckt, aber echt überhaupt keine Ahnung, wo ich da was zuweisen soll. Bin auch nicht sicher was du mit "wie du es dir eingerichtet hast" meinst. Lief ja eigentlich alles nach deiner Anleitung, und ansonsten ist bei Wordpress auch alles Standard bei mir ;)

Jetzt mitmachen!

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