опубликовать ->фильтр содержимого публикации


Я пытаюсь определить, является ли используемое мной регулярное выражение неправильным - или я упускаю здесь что-то основное. Следующее:

add_filter('the_content','wpdu_image_replace');
function wpdu_image_replace($content) {
    global $post;
    preg_replace( '/<img.*src="(.*?)".*?>/', '<a href="\1">Image file</a>', $post->post_content );

    return $content;
}

Следует искать любые <img> в post->post_content (содержимое поста) и заменить весь тег на href, который просто ссылается на файл изображения. В конце концов, то, что я собираюсь с этим сделать, немного сложнее, но я решил начать с основ. Любая помощь будет очень признательна. Спасибо!

Author: Zach, 2012-06-14

1 answers

Вы используете preg_replace неправильно функционируют. Эта функция возвращает замененное содержимое:

add_filter( 'the_content', 'wpdu_image_replace' );
function wpdu_image_replace( $content ) {
    return preg_replace( '/<img.*?src="(.*?)".*?>/', '<a href="$1">Image file</a>', $content );
}

Также обратите внимание, что вам не нужно использовать глобальную переменную $post, потому что содержимое сообщения передается вашей функции в качестве первого аргумента.

 0
Author: Eugene Manuilov, 2012-06-14 16:19:45