Як перевірити, чи я пов’язаний із публікацією, перш ніж видалити її?


15

Якщо я хочу "безпечно" видалити публікацію. Я хочу переконатися, що в моєму щоденнику не існує посилання на публікацію "для видалення". Як це зробити?


Не знаєте, як це зробити, але, можливо, ви не можете спробувати це: Перемістіть публікацію в кошик і використовуйте плагін перевірки посилань. Якщо плагін перевірки посилань досить розумний, він повинен повідомити вам будь-які посилання, що посилаються на публікацію, яку ви більше не бачите на сайті.
Брейді

1
+1 за чудове запитання. Ідея полягала б у тому, щоб сканувати вміст публікацій усіх публікацій, але це може бути болючим для великого сайту, що не має жодної публікації. Я б це зробив, зберігаючи серіалізований масив посилань публікації у своєму postmeta (для нових та для існуючих), а потім запитувати цю метаінформацію з таблиці postmeta і просканувати та повернути масив ідентифікаторів публікацій, які посилаються на видалення публікації . Ви можете або зупинити його, або змусити його вжити будь-яких дій, які ви хочете.
Ашфаме

@Ashfame: Цікава пропозиція. Тепер, якщо ви створили для нього плагін ...
Ян Фабрі

Ще +1 плюс фаворит. @Jan Fabry & @Ashfame - я впевнений, що ти хочеш разом працювати над цим! :)
кайзер

@ user3047 Ви не хочете відзначити це як вирішене?
кайзер

Відповіді:


6

Прочитавши цю тему, я побачив, що мені це може знадобитися і іноді. Тож ось результат:

Плагін внутрішньої перевірки посилань

Він додає мета-вікно на екранах редагування публікацій, де відображаються посилання на всі публікації, які внутрішньо посилаються на поточно відображену публікацію. Якщо ви хочете змінити вихід (додати щось для напр.), Будь ласка, використовуйте наданий фільтр. Приклад використання фільтра можна знайти у файлі readme.

Плагін має ліцензію GPL2. Можливо, я також покладу його в офіційне репо, щоб дозволити встановлення всередині вашого власного блогу. Редагувати: Готово.

... або в ...

... або в нашій власній


І завдяки @Drake за надання запиту на sql (будь ласка, перейдіть та підтвердіть його відповідь).
кайзер

Трохи грубо, але свого роду працює. Якщо у вас є кілька посилань в одному і тому самому дописі, він відображатиме дублікати. Прийнятий розчин.
user3047

Дякую за голову вгору Не знав цього. Зміниться в майбутній версії.
кайзер

6

Ви можете виконати запит на зразок:

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

щоб отримати всі публікації, які пов’язували це старе поштове замовлення за датою.


1

Не існує окремої таблиці або структури даних, яка б зберігала посилання після публікації, тому найкращий спосіб зробити це - пошук ваших публікацій за URL-адресою публікації, яку ви хочете видалити. Пошук працює над HTML-кодом публікації, тому він буде містити повне посилання, навіть якщо ви не бачите його у візуальному редакторі.

Звичайно, ви також повинні шукати сторінки, оскільки вони також можуть містити посилання на повідомлення.

Іншим підходом було б використання Google. Якщо ви шукаєте, link:http://example.com/2011/05/post-to-delete/він поверне всі сторінки, які посилаються там. Потім ви також можете додати, site:example.comщоб обмежити результати лише сторінками вашого сайту. Звичайно, це буде не так актуально, як пошук у вашій власній поточній базі даних.


Чудова ідея. Але конкретний блог, з яким я маю справу, - це приватний ...
user3047

1

Просто використовуйте інструменти для веб-майстрів Google - на ній є певна сторінка із внутрішніми посиланнями.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.