Jak sprawdzić, czy podlinkowałem post, zanim go usunę?


15

Jeśli chcę „bezpiecznie” usunąć wpis. Chcę się upewnić, że nie ma (w moim blogu) linku do postu „do usunięcia”. Jak mogę to zrobić?


Nie wiem, jak to zrobić, ale może nie możesz tego spróbować: Przenieś post do kosza i użyj wtyczki do sprawdzania linków. Jeśli wtyczka do sprawdzania linków jest wystarczająco sprytna, powinna informować cię o linkach prowadzących do postu, których już nie widzisz na stronie.
Brady

1
+1 za świetne pytanie. Ideą byłoby zeskanowanie zawartości wszystkich postów, ale może to być kłopotem dla dużej witryny z dużą liczbą postów. Zrobiłbym to, zapisując zserializowaną tablicę linków postu w jego postmeta (dla nowych i istniejących), a następnie sprawdziłem te informacje meta z tabeli postmeta i skanowałem i zwracałem szereg identyfikatorów postów, które prowadzą do usuwanego postu . Możesz go zatrzymać lub zmusić do podjęcia dowolnego działania.
Ashfame

@Ashfame: Ciekawa sugestia. Teraz, jeśli chcesz stworzyć dla niego wtyczkę ...
Jan Fabry

Kolejne +1 plus ulubiona. @Jan Fabry i @Ashfame - jestem pewien, że chcesz współpracować nad tym! :)
kaiser

@ user3047 Nie chcesz oznaczyć tego jako rozwiązanego?
kaiser

Odpowiedzi:


6

Po przeczytaniu tego wątku zobaczyłem, że czasem też mogę tego potrzebować. Oto wynik:

Wtyczka wewnętrznego sprawdzania linków

Dodaje meta-box na ekranach edycji postów, który pokazuje linki do wszystkich postów, które prowadzą wewnętrznie do aktualnie wyświetlanego postu. Jeśli chcesz zmienić wyjście (dodaj coś np.), Skorzystaj z dostarczonego filtra. Przykład użycia filtra można znaleźć w pliku readme.

Wtyczka posiada licencję GPL2. Może umieszczę to również w oficjalnym repozytorium, aby umożliwić instalację z Twojego blogu. Edycja: Gotowe.

... lub w ...

... lub we własnym zakresie


I dzięki @Drake za dostarczenie kwerendy SQL (proszę przejść do głosowania na jego odpowiedź).
kaiser

Trochę szorstki, ale trochę działa. Jeśli masz wiele linków w tym samym poście, zostaną wyświetlone duplikaty. Zaakceptowane rozwiązanie.
user3047,

Dzięki za heads-upy. Nie byłam tego świadoma. Zmieni się w przyszłej wersji.
kaiser

6

Możesz wykonać zapytanie takie jak:

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

aby uzyskać wszystkie posty, które łączyły to stare zamówienie na pocztę według daty.


1

Nie ma oddzielnej tabeli ani struktury danych, która utrzymuje linki post-to-post, dlatego najlepszym sposobem na to jest przeszukiwanie swoich postów pod adresem URL postu, który chcesz usunąć. Wyszukiwanie działa na kodzie HTML postu, więc będzie zawierać pełny link, nawet jeśli nie widzisz go w edytorze wizualnym.

Oczywiście powinieneś również przeszukiwać strony, ponieważ mogą one również zawierać linki do postów.

Innym podejściem byłoby użycie Google. Jeśli link:http://example.com/2011/05/post-to-delete/go wyszukasz, zwróci wszystkie strony, które tam prowadzą. Możesz także dodać, site:example.comaby ograniczyć wyniki tylko do stron w witrynie. Oczywiście nie będzie to tak aktualne, jak wyszukiwanie we własnej bieżącej bazie danych.


Świetny pomysł. Ale konkretny blog, z którym mam do czynienia, jest prywatny ...
user3047

1

Wystarczy użyć narzędzi Google dla webmasterów - ma konkretną stronę z wewnętrznymi linkami.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.