WordPress как на ладони
WordPress темы и плагины за 250 рублей wordpress jino

enter_title_here хук-фильтр . WP 3.1.0

Позволяет изменить текст плейсхолдера (подсказку) у поля "Заголовок" при добавлении нового поста (записи).

Пример плейсхолдера при добавление новой записи
Пример плейсхолдера в виджете в дашборде.
Относится только к записям (post_type = post)

Использование

add_filter( 'enter_title_here', 'filter_function_name_82', 10, 2 );
function filter_function_name_82( $text, $post ){
	// Изменяем...

	return $text;
}
$text(строка)
Текст плейсхолдера (подсказки).
По умолчанию: __( 'Enter title here' ) (Введите заголовок)
$post(WP_Post)
Объект поста. Структуру объекта смотрите в описании к get_post().

Примеры

#1 Изменим текст плейсхолдера для своего типа записи

Пусть создан тип поста "Сотрудники" со slug = workers (см. register_post_type()), тогда плейсхолдер для этого типа записи можно изменить так:

add_filter( 'enter_title_here', 'workers_enter_title_here', 10, 2 );
function workers_enter_title_here( $text, $post ) {
	if ( $post->post_type === 'workers' ) {
		$text = 'Введите ФИО сотрудника';
	}

	return $text;
}

#2 Изменим плейсхолдер при добавлении поста или страницы

## Изменим плейсхолдер при добавлении поста или страницы
add_filter( 'enter_title_here', 'post_enter_title_here', 10, 2 );
function post_enter_title_here( $text, $post ){
	// при добавлении поста
	if ( $post->post_type === 'post' ) {
		$text = 'Как будет называться ваша чудесная статья?';
	}

	// при добавлении страницы
	if ( $post->post_type === 'page' ) {
		$text = 'Введите короткое и понятное название страницы';
	}

	return $text;
}

#3 Изменим плейсхолдер при создании черновика через виджет в дашборде

add_filter( 'enter_title_here', 'dashboard_enter_title_here' );
function dashboard_enter_title_here( $text ) {
	if ( get_current_screen()->base === 'dashboard' ) {
		$text = 'Введите заголовок будущей статьи';
	}

	return $text;
}

Где используется хук

В файле: /wp-admin/edit-form-advanced.php

Код хука-фильтра enter_title_here

Фрагмент из: wp-admin/edit-form-advanced.php VER 4.9.6
...
<div id="post-body" class="metabox-holder columns-<?php echo 1 == get_current_screen()->get_columns() ? '1' : '2'; ?>">
<div id="post-body-content">

<?php if ( post_type_supports($post_type, 'title') ) { ?>
<div id="titlediv">
<div id="titlewrap">
	<?php
	/**
	 * Filters the title field placeholder text.
	 *
	 * @since 3.1.0
	 *
	 * @param string  $text Placeholder text. Default 'Enter title here'.
	 * @param WP_Post $post Post object.
	 */
	$title_placeholder = apply_filters( 'enter_title_here', __( 'Enter title here' ), $post );
	?>
	<label class="screen-reader-text" id="title-prompt-text" for="title"><?php echo $title_placeholder; ?></label>
	<input type="text" name="post_title" size="30" value="<?php echo esc_attr( $post->post_title ); ?>" id="title" spellcheck="true" autocomplete="off" />
</div>
<?php
/**
 * Fires before the permalink field in the edit form.
 *
 * @since 4.1.0
 *
 * @param WP_Post $post Post object.
 */
do_action( 'edit_form_before_permalink', $post );
?>
<div class="inside">
...
Фрагмент из: wp-admin/includes/dashboard.php VER 4.9.6
...

	$post_ID = (int) $post->ID;
?>

	<form name="post" action="<?php echo esc_url( admin_url( 'post.php' ) ); ?>" method="post" id="quick-press" class="initial-form hide-if-no-js">

		<?php if ( $error_msg ) : ?>
		<div class="error"><?php echo $error_msg; ?></div>
		<?php endif; ?>

		<div class="input-text-wrap" id="title-wrap">
			<label class="screen-reader-text prompt" for="title" id="title-prompt-text">

				<?php
				/** This filter is documented in wp-admin/edit-form-advanced.php */
				echo apply_filters( 'enter_title_here', __( 'Title' ), $post );
				?>
			</label>
			<input type="text" name="post_title" id="title" autocomplete="off" />
		</div>

		<div class="textarea-wrap" id="description-wrap">
			<label class="screen-reader-text prompt" for="content" id="content-prompt-text"><?php _e( 'What&#8217;s on your mind?' ); ?></label>
			<textarea name="content" id="content" class="mceEditor" rows="3" cols="15" autocomplete="off"></textarea>
		</div>

		<p class="submit">
			<input type="hidden" name="action" id="quickpost-action" value="post-quickdraft-save" />
			<input type="hidden" name="post_ID" value="<?php echo $post_ID; ?>" />
			<input type="hidden" name="post_type" value="post" />
			<?php wp_nonce_field( 'add-post' ); ?>
...
campusboy 2798youtube.com/c/wpplus
Активный пользователь wp-kama.ru. WordPress-разработчик. Разработка сайтов и лендингов. Доработка существующих проектов. Сопровождение ресурсов.
Комментариев нет
    Здравствуйте, !     Войти . Зарегистрироваться