the_content
Використовується для фільтрації контенту запису після того, як контент отриманий з бази даних, але до того, як він виведе на екран.
Завжди звертайте увагу на те, щоб передається змінна $content була повернута назад після обробки, інакше користувачі побачать порожню сторінку.
Використання
add_filter( 'the_content', 'filter_function_name_11'); function filter_function_name_11( $content ) { // Фільтр... return $content; }
-
$content
(рядок) - Рядок, який потрібно відфільтрувати і повернути назад.
Приклади
#1 Демонстрація роботи
Для демонстрації роботи фільтра додамо в кінець кожного тексту посту напис “Кінець!”:
add_filter('the_content', 'the_end'); function the_end($text) { return $text . 'Кінець!'; }
#2 Фільтр контенту окремої сторінки
Цей приклад можна використовувати, для створення постійної сторінки контент якої буде генеруватися залежно від чогось, допустимо змінної $_GET запиту (наприклад, для зазначеного автора ?the_author=crank ):
add_filter( 'the_content', 'my_the_content_filter'); function my_the_content_filter( $content ){ // Якщо не сторінка debug нічого не робимо if( $GLOBALS['post']->post_name != 'debug' ) return $content; // Виконуємо дії // передбачається що УРЛ зазначена змінна запита the_author return "Це сторінка автора: ". $_GET['the_author']; }
#3 Значок посту
Цей приклад додасть картинку перед постом (дивіться is_single() ). Мається на увазі, що зображення називається post_icon.png і знаходиться в папці image в каталозі теми. Фільтр працює в зниженому пріоритеті 20 (зазвичай 10), це означає, що він буде оброблений пізніше за інших.
add_filter( 'the_content', 'my_the_content_filter', 20); function my_the_content_filter( $content ){ if ( is_single() ) // Додаємо картинку на початок кожної сторінки $content = sprintf( '<img class="post-icon" src="%s/images/post_icon.png" alt="Post icon" title=""/>%s', get_bloginfo( 'stylesheet_directory' ), $content ); // Повертаємо контент. return $content; }
#4 Мініатюра посту на початку
Цей приклад показує, як додати мініатюру посту перед виведенням контенту. Мініатюра поста встановлюється під час редагування поста (ця функція має бути включена, дивіться add_theme_support() ). Мініатюра буде додана лише до постів (записів типу post):
add_filter( 'the_content', 'featured_image_before_content' ); function featured_image_before_content( $content ) { if ( is_singular('post') && has_post_thumbnail()) { $thumbnail = get_the_post_thumbnail(); $content = $thumbnail. $content; } return $content; }
список змін
З версії 0.71 | Введено. |
Де викликається хук
Де використовується хук у WordPress
remove_filter( 'the_content', 'wpautop', $ priority);
add_filter( 'the_content', 'wpautop', $current_priority - 1);
remove_filter( 'the_content', '_restore_wpautop_hook', $current_priority);
add_filter( 'the_content', '_restore_wpautop_hook', $ priority + 1);
add_filter( 'the_content', array( $this, 'run_shortcode' ), 8);
add_filter( 'the_content', array( $this, 'autoembed' ), 8);
add_filter( 'the_content', 'prepend_attachment');
add_filter( 'the_content', 'do_shortcode', 11); // AFTER wpautop().
add_filter( 'the_content', 'wp_replace_insecure_home_url');
add_filter( 'the_content', 'wp_filter_content_tags');
add_filter( 'the_content', 'wptexturize');
add_filter('the_content', 'shortcode_unautop');
add_filter( 'the_content', 'wpautop');
add_filter( 'the_content', 'convert_smilies', 20);
add_filter( 'the_content', 'do_blocks', 9);
add_filter($filter, 'capital_P_dangit', 11);