the_content хук-фільтрWP 0.71

Використовується для фільтрації контенту запису після того, як контент отриманий з бази даних, але до того, як він виведе на екран.

Завжди звертайте увагу на те, щоб передається змінна $content була повернута назад після обробки, інакше користувачі побачать порожню сторінку.

Використання

add_filter( 'the_content', 'filter_function_name_11');
function filter_function_name_11( $content ) {
	// Фільтр...

	return $content;
}
$content
(рядок)
Рядок, який потрібно відфільтрувати і повернути назад.

Приклади

0

#1 Демонстрація роботи

Для демонстрації роботи фільтра додамо в кінець кожного тексту посту напис “Кінець!”:

add_filter('the_content', 'the_end');
function the_end($text) {
	return $text . 'Кінець!';
}
0

#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'];
}
0

#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;
}
0

#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Введено.

Де викликається хук

the_content

the_content
the_content
the_content

the_content

the_content

Де використовується хук у WordPress

wp-includes/blocks.php 946

remove_filter( 'the_content', 'wpautop', $ priority);

wp-includes/blocks.php 966

add_filter( 'the_content', 'wpautop', $current_priority - 1);

wp-includes/blocks.php 967

remove_filter( 'the_content', '_restore_wpautop_hook', $current_priority);

wp-includes/blocks.php 947

add_filter( 'the_content', '_restore_wpautop_hook', $ priority + 1);

wp-includes/class-wp-embed.php 32

add_filter( 'the_content', array( $this, 'run_shortcode' ), 8);

wp-includes/class-wp-embed.php 40

add_filter( 'the_content', array( $this, 'autoembed' ), 8);

wp-includes/default-filters.php 189

add_filter( 'the_content', 'prepend_attachment');

wp-includes/default-filters.php 603

add_filter( 'the_content', 'do_shortcode', 11); // AFTER wpautop().

wp-includes/default-filters.php 191

add_filter( 'the_content', 'wp_replace_insecure_home_url');

wp-includes/default-filters.php 190

add_filter( 'the_content', 'wp_filter_content_tags');

wp-includes/default-filters.php 185

add_filter( 'the_content', 'wptexturize');

wp-includes/default-filters.php 188

add_filter('the_content', 'shortcode_unautop');

wp-includes/default-filters.php 187

add_filter( 'the_content', 'wpautop');

wp-includes/default-filters.php 186

add_filter( 'the_content', 'convert_smilies', 20);

wp-includes/default-filters.php 184

add_filter( 'the_content', 'do_blocks', 9);

wp-includes/default-filters.php 154

add_filter($filter, 'capital_P_dangit', 11);

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *