Die URL im Backend ist ja immer die Selbe, einzig der Inhalt der Variablen ‚post‘ ändert. Es gibt doch bestimmt was in eckiger Klammer, das mir diesen Inhalt ausgibt, bevorzugt dann in einem Widget, so muss ich nicht ins Template eingreifen.
Die Lösung ist gefunden. WP kennt wohl die PHP-Funktion ‚the_ID()‘.
Schritt 1
Erstellen eines Text- oder HTML-Widgets in der Seitenleiste an oberster Stelle. Sichtbarkeit so wählen, dass es nur den ‚Rollen‘ angezeigt wird, welche die Berechtigung haben Beiträge zu bearbeiten, z.B. ‚Admin“ und Autor‘. Alle Anderen bekommen dieses Widget gar nicht zu sehen. In den HTML-Bereich folgenden Code einfügen:
&action=edit“ target=“_blank“ rel=“noopener“>Beitrag-ID <?php the_ID(); ?> bearbeiten
Schritt 2
Damit im Widget PHP ausgeführt werden kann, z.B. das Plugin ‚Enable Shortcode and PHP in Text widget‘ installieren.
Ergebnis
Das Widget wird nur angezeigt, wenn man sich vorgöngig eingeloggt hat. Klickt man auf den Link, wird direkt das Bearbeitungsformular in einem neuen Fenster angezeigt.
Man kann natürlich das Widget generell anzeigen. Der Besucher der darauf klickt wird dann zum Login aufgefordert. Ob das so gewünscht ist muss der Admin entscheiden.
Ergänzung
Ich habe in diesem Widget noch einen Link drin um den User abzumelden und Links zu Seiten die nur für den Internen Gebrauch sind. Z. B. Schrift- und Stilmuster, eine Auflistung der Kategorien ID, …
-
Diese Antwort wurde geändert vor 7 Jahren, 1 Monat von radarin.
Irgendwie hab ich gerade etwas Mühe hier beim Verfassen. Das Codebeispiel wird nicht korrekt angezeigt. Nach dem Versuch das zu ändern, ist das System der Meinung, ich versuche da was nicht gut ist und behällt die Antwort vorerst zurück. Ich verfasse zur Lösung einen Beitrag auf meiner Seite. Wenn erlaubt, verlinke ich dazu.
Zweiter Gedanke, einfach nur ein Link irgendwo im Beitrag, der nur angezeigt wird wenn ich eingelogt bin und der mich direkt zum Bearbeitungsformular im Backend bringt.
Das ist eigentlich fester Bestandteil jedes WordPress-Themes — z.B. bei Beiträgen in Twenty Sixteen unterhalb des Beitragsdatums:
Ein Link zu deiner Website ist nicht nötig.
Deine „Lösung“ war im Spam-Filter gelandet.
Zu deinem Schritt 1:
Statt Anlegen eines Widgets und Aufruf über die Beitrags-ID kannst du auch einfach die vorhandene Funktion get_edit_post_link()
verwenden:
<?php echo get_edit_post_link( $id, $context ); ?>
Der Code sollte auch nicht in einem Widget eingefügt werden, weil er sonst auf einer Beitras-Übersichtsseite (Start-/Blogseite, Archiv, Kategorie, …) nicht funktioniert, weil es dann nicht eine ID gibt.
Zu deinem Schritt 2:
In WordPress 4.9 werden in Widgets Shortcodes auch ohne zusätztliche Funktion ausgeführt.
Zu deinem „Ergebnis“:
Es ist unschön, nicht angemeldeten Website-Besuchern einen Link zur Bearbeitung anzuzeigen. Ich würde auch das Anmeldeformular nur zugänglich machen, wenn eine Registrierung von Nutzern erwünscht ist.
Ein Link zu deiner Webseite ist nicht nötig
Oder nicht erwünscht? 😉
Die erwähnte Funktion behalte ich mal im Hinterkopf. Meine Lösung funktioniert einwandfrei. Über das Archiv habe ich noch keine Seite aufgetreten. Muss ich mal Testen.
Den Link zeigt es mir nur an wenn ich eingeloggt bin. Für Besucher ist er nicht von Interesse.
Ich verwende Appointment, da hab ich noch keinen solchen Link gesehen. Vielleicht hab ich ihn aber auch unwissend auskommentiert, da war was etwas überladen. Muss ich bei Gelegenheit einen Blick drauf werfen.
In der Auflistung der Kategorie ist dir IF im Widget auch nicht praktikabel. Zeigeces deshalb nur in der Einzelansicht an.
Das ist eigentlich fester Bestandteil jedes WordPress-Themes
eigentlich könnte ausschlaggebend sein. Ich gehe jetzt mal davon aus, dass die Namensgebung der Dateien im Template Regeln folgt. Ich hab in einer Testinstallation mit dem Template ‚Bakersville‘ mal nachgesehen, genau so wie du sagst, der Code ist in der single.php zu finden. Im ‚Appointment‘ fehlt in dieser Datei diese Funktion. Müsste sich dann aber bei Bedarf problemlos nachrüsten lassen.
Da hab ich wohl ausgerechnet ein Template erwischt das zu diesen wenigen Ausnahmen gehört, sonst wäre diese Frage gar nicht aufgetaucht.
Betreffend Widget, ja, das ist mir noch in der selben Nacht aufgefallen, in der Listenansicht ist es die ID vom letzten Beitrag. Den Link lasse ich mir deshalb nur in der Einzelansicht anzeigen.
In WordPress 4.9 werden in Widgets Shortcodes auch ohne zusätztliche Funktion ausgeführt.
4.8.3 ist doch das Aktuellste? 🙂 In meinem Fall meine ich aber nicht Shortcodes, sondern wirklich PHP.
(mit dieser neuen Erkenntnis muss ich den Einstieg zu meinem Beitrag auf meiner Seite wohl nochmals überarbeiten)
-
Diese Antwort wurde geändert vor 7 Jahren, 1 Monat von radarin.
-
Diese Antwort wurde geändert vor 7 Jahren, 1 Monat von radarin.
-
Diese Antwort wurde geändert vor 7 Jahren, 1 Monat von radarin.