Wie überprüfe ich, ob ich mit einem Beitrag verlinkt bin, bevor ich ihn lösche?

15

Wenn ich einen Beitrag "sicher" löschen möchte. Ich möchte sicherstellen, dass kein Link (innerhalb meines Blogs) zum zu löschenden Post existiert. Wie mache ich das?

user3047
quelle
Ich bin mir nicht sicher, wie ich das machen soll, aber vielleicht kannst du es nicht versuchen: Verschiebe den Beitrag in den Papierkorb und verwende ein Linkprüfungs-Plugin. Wenn das Linkprüfungs-Plugin klug genug ist, sollte es Ihnen alle Links mitteilen, die auf den Beitrag verweisen, den Sie auf der Site nicht mehr sehen.
Brady
1
+1 für eine gute Frage. Die Idee wäre, den Inhalt aller Posts zu scannen, aber es kann für eine große Site mit einer großen Anzahl von Posts ein Problem sein. Ich würde es tun, indem ich ein serialisiertes Array von Links eines Posts in seinem Postmeta speichere (für neue und für bestehende) und dann diese Metainformationen aus der Postmeta-Tabelle abfrage und eine Reihe von Post-IDs durchsuche und zurückgebe, die auf den zu löschenden Post verweisen . Sie können ihn anhalten oder veranlassen, dass er die gewünschten Aktionen ausführt.
Ashfame
@Ashfame: Interessanter Vorschlag. Nun, wenn Sie ein Plugin dafür erstellen würden ...
Jan Fabry
Ein weiteres +1 plus ein Fav. @Jan Fabry & @Ashfame - Ich bin sicher, Sie möchten an diesem Projekt zusammenarbeiten! :)
Kaiser
@ user3047 Möchten Sie diesen nicht als gelöst markieren?
Kaiser

Antworten:

6

Nachdem ich diesen Thread gelesen habe, habe ich gesehen, dass ich das vielleicht auch manchmal brauche. Also hier ist das Ergebnis:

Das Plugin für den internen Link Checker

Es wird ein Meta-Feld in Ihren Post-Bearbeitungsbildschirmen hinzugefügt, in dem Links zu allen Posts angezeigt werden, die intern auf den aktuell angezeigten Post verweisen. Wenn Sie die Ausgabe ändern möchten (zB etwas hinzufügen), verwenden Sie bitte den mitgelieferten Filter. Ein Beispiel für die Verwendung des Filters finden Sie in der Readme-Datei.

Das Plugin ist GPL2-lizenziert. Vielleicht werde ich es auch in das offizielle Repo stellen, um die Installation aus Ihrem selbst gehosteten Blog heraus zu ermöglichen. Bearbeiten: Fertig

...oder bei...

... oder in unserem eigenen

Kaiser
quelle
Und danke an @Drake für die Bereitstellung der SQL-Abfrage (bitte gehen Sie und stimmen Sie seiner Antwort zu).
Kaiser
Ein bisschen rau, aber irgendwie funktioniert. Wenn Sie mehrere Links in einem Beitrag haben, werden Duplikate angezeigt. Akzeptierte Lösung.
user3047
Danke für die Warnung. War sich dessen nicht bewusst. Wird sich in einer zukünftigen Version ändern.
Kaiser
6

Sie können eine Abfrage wie folgt durchführen:

SELECT ID, post_title, post_date, post_content 
FROM wp_posts 
WHERE post_content 
LIKE '%your-post-title%' ORDER BY post_date

um alle Beiträge, die diesen alten Beitrag verknüpft haben, nach Datum zu ordnen.

Erpel
quelle
1

Es gibt keine separate Tabelle oder Datenstruktur, in der Post-to-Post-Links gespeichert sind. Am besten durchsuchen Sie Ihre Posts nach der URL des Posts, den Sie löschen möchten. Die Suche funktioniert mit dem HTML-Code des Posts, sodass der vollständige Link angezeigt wird, auch wenn Sie ihn nicht im visuellen Editor sehen.

Natürlich sollten Sie auch die Seiten durchsuchen, da sie auch Links zu Beiträgen enthalten können.

Ein anderer Ansatz wäre die Verwendung von Google. Wenn Sie danach suchen link:http://example.com/2011/05/post-to-delete/, werden alle Seiten zurückgegeben, die dort verlinken. Sie können dann auch hinzufügen site:example.com, um die Ergebnisse auf nur Seiten Ihrer Site zu beschränken. Dies ist natürlich nicht so aktuell wie eine Suche in Ihrer eigenen aktuellen Datenbank.

Jan Fabry
quelle
Großartige Idee. Aber das Blog, mit dem ich es zu tun habe, ist privat ...
user3047
1

Verwenden Sie einfach die Webmaster-Tools von Google. Auf einer bestimmten Seite werden interne Links angezeigt.

anu
quelle