Intereting Posts
Отображение сообщений, привязанных к пользовательским правилам таксономии Узнайте последние 7 дней загрузки изображений, на прошлой неделе загрузили изображение из галереи и отобразите их на разных страницах Заказ стилей стилей выше <style> с помощью functions.php Проблема с wpdb-запросом для доступа к предыдущим 3-дневным сообщениям Внешний скрипт с использованием WP – Hooks / Actions не работает? как создать таблицу во время установки плагина в классе Передача параметра из текущего URL-адреса для перенаправления на другой URL-адрес WPDB SQL-запрос с return () возвращающей переменной, а не значением db Отображение обрезанной версии the_post () Импорт из XML игнорирует сериализованное настраиваемое поле Пользовательские поля регистрации не отображаются в информации о пользователе Как получить данные из Advanced Custom post при поиске определенного ключевого слова или имени поля, связанного с этим сообщением? Пользовательские таксономии, но с соответствующими значками? Аутентификация пользовательского поля при входе в систему Настройка основного меню для включения пользовательского описания таксономии

Измените ссылку на другую запись на ссылку в редакторе

Внимательно, если мы используем диалог вставки ссылки, чтобы вставить ссылку на другой пост, WordPress всегда использует постоянную ссылку на эту запись. Проблема в том, когда мы меняем структуру permalink, эта ссылка будет нарушена.

Я хотел бы спросить, есть ли способ изменить ссылку с permalink на shortlink как ?p=123 чтобы заставить ее работать в любых обстоятельствах.

Благодарю.

Ссылки в этом диалоге сделаны wp_ajax_wp_link_ajax() (см. wp-admin/includes/ajax-actions.php , для этой функции нет страницы на Codex или queryposts.com).

Чтобы изменить фильтр ссылок 'page_link' , 'post_type_link' , 'post_link' и, возможно, 'attachment_link' после check_ajax_referer() для действия 'internal-linking' check_ajax_referer() 'internal-linking' .

Хорошо, звучит немного сложно, но это очень легко. 🙂
Плагин на GitHub: https://gist.github.com/3731739

 add_action( 'check_ajax_referer', 't5_temporary_internal_links', 10, 1 ); /** * Turn permalinks into dynamic links. * * @param string $action_or_link Action when called per 'check_ajax_referer', * later the permalink. * @param object|integer $post * @wp-hook check_ajax_referer * @wp-hook page_link * @wp-hook attachment_link * @wp-hook post_type_link * @wp-hook post_link * @since 2012.09.16 * @return string */ function t5_temporary_internal_links( $action_or_link, $post = 0 ) { if ( 'check_ajax_referer' === current_filter() and 'internal-linking' === $action_or_link ) { add_filter( 'page_link', __FUNCTION__, 10, 2 ); // You cannot search for attachments in this dialog, // but a plugin might have changed that, so … add_filter( 'attachment_link', __FUNCTION__, 10, 2 ); add_filter( 'post_type_link', __FUNCTION__, 10, 2 ); add_filter( 'post_link', __FUNCTION__, 10, 2 ); return; } $id = is_object( $post ) ? $post->ID : $post; return home_url( "?p=$id" ); } 

Но … когда вы изменяете постоянные ссылки, вам все равно придется создавать перенаправления в файле конфигурации сервера, чтобы перенаправить существующие URL-адреса. Поэтому я не уверен, действительно ли этот плагин необходим.