Измените постоянную ссылку для вложения wordpress


Мои вложения в настоящее время переписаны с
http://localhost/?attachment_id=3 чтобы
http://localhost/images/image-title используя ответ @Bainternet здесь.

 $new_rules['images/(\d*)$'] = 'index.php?attachment_id=$matches[1]';  

Однако wordpress по-прежнему ссылается на ссылку по умолчанию http://localhost/?attachment_id=3. Функции Wordpress, такие как the_permalink, get_attachment_url, get_attachment_image_src и т. Д. все используют формат по умолчанию http://localhost/?attachment_id=3.

Я могу получить доступ к изображению, как и предполагалось, если я вручную наберу в переписанном формате http://localhost/images/image-title.

Как я могу заставить wordpress использовать мою пользовательскую перепись для постоянной ссылки, особенно на странице администратора?

РЕДАКТИРОВАТЬ: переформулированный вопрос для конкретности и корректности:
Как мне переопределить the_permalink, чтобы использовать формат /images/image-title вместо /?attachment_id=ID?
Я могу получить заголовок изображения, используя $post->post_title.

РЕДАКТИРОВАТЬ #2:
Для тех, кто будет читать этот вопрос в будущем, я счел лучшим использовать $post->post_name для ссылки, чтобы обеспечить уникальность.
/images/post_title

Author: Community, 2014-04-22

2 answers

Ваше правило работает с идентификатором вложения, поэтому я не уверен, как вы используете заголовок, но ответ в любом случае почти идентичен. Фильтр, который вам нужен, это attachment_link:

function wpd_attachment_link( $link, $post_id ){
    $post = get_post( $post_id );
    return home_url( '/images/' . $post->post_title );
}
add_filter( 'attachment_link', 'wpd_attachment_link', 20, 2 );

Измените $post->post_title на $post->ID, чтобы поместить идентификатор в URL-адрес вместо заголовка.

 6
Author: Milo, 2014-04-27 17:11:47

Какой-нибудь другой способ изменить URL-адрес постоянной ссылки

function ro_remove_attachment_title_caption( $attach_id ){
 $args = array(
   'ID'          => $attach_id,
   'post_name'   => "permalinkName",
 );
 wp_update_post( $args );
}
add_action( 'add_attachment', 'ro_remove_attachment_title_caption', 10, 1 );

Это работает в контексте плагина: удалите ЦИФРОВУЮ КАМЕРУ OLYMPUS из заголовка и заголовка путем загрузки изображения

 -1
Author: Severin, 2019-05-26 13:55:48