Intereting Posts
Показать 1 сообщение за таксономию с полилангом Проблема с использованием role_has_cap hook Как читать каталог отдельных пользователей и отображать контент для этого конкретного пользователя? Пользовательские функции для расчета строковых данных Как передать переменную для пар ключ / значение в аргументе? Multisite – отображение другого содержимого заголовка на основе доступа к сайту Галерея WordPress не отображается Программно добавить пользовательскую страницу / путь / URL / маршрут в WordPress Одновременно публикуйте как WordPress.com, так и самостоятельно размещенный блог WordPress Как отредактировать / заменить функцию Parent functions.php в Child Theme, чтобы добавить класс «Walker» Как передать NULL в том, где массив для $ wpdb-> update Упорядочить сообщение 2 Металлический мета-аддон из метана от CPT Изменить тему Datepicker Могу ли я загрузить плагин wordpress, созданный с помощью фреймворка Получить идентификатор изображения в медиа-загрузке

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

Я хочу, чтобы мои пользователи отправляли ссылки на мой сайт, как reddit и digg. Я добавил meta_key 'syndication_permalink', который содержит ссылку на этот пост. Как я могу изменить постоянную ссылку для ссылки на эту настраиваемую ссылку не на мою страницу?

Solutions Collecting From Web of "Изменить постоянную ссылку на внешний URL из настраиваемого поля"

Отфильтруйте post_link (или post_type_link для пользовательских типов сообщений), выберите и подтвердите значение метаданных, а затем верните это вместо исходной ссылки.

Как плагин:

 <?php /** * Plugin Name: External Permalinks * Plugin URI: http://wordpress.stackexchange.com/q/64285/73 * Description: Uses the value of post meta field <code>syndication_permalink</code> as permalink if available. * Version: 2012.11.13 * Author: Fuxia Scholz * Author URI: https://fuxia.me * Licence: MIT * License URI: http://opensource.org/licenses/MIT */ add_filter( 'post_link', 'wpse_64285_external_permalink', 10, 2 ); /** * Parse post link and replace it with meta value. * * @wp-hook post_link * @param string $link * @param object $post * @return string */ function wpse_64285_external_permalink( $link, $post ) { $meta = get_post_meta( $post->ID, 'syndication_permalink', TRUE ); $url = esc_url( filter_var( $meta, FILTER_VALIDATE_URL ) ); return $url ? $url : $link; } 

Пример ввода:

введите описание изображения здесь