@Axel030392

Как изменить заголовок на конкретной странице в WordPress?

Как можно изменить заголовок на конкретной странице, в адресе которой есть аякс параметры? То есть, вопрос не в том как поменять скажем на отдельной записи или страницы, у которых есть айдишники, а вот в таком формате:

.../candidate/?ajax_filter=true&sort-by=recent&sector_cat=postizhjor&location_location1=abakan&posted=all

Желательно конечно так же через function.php, но буду рад любому ответу.

И второй вопрос, можно ли сделать переменную, которая будет привязана к одному из параметров этого аякс фильтра. Например, параметр location_location1=abakan - это город Абакан. То есть, переменная должна где-то на странице отображать название города или еще какой-то дополнительный текст. (нужно для SEO)
  • Вопрос задан
  • 107 просмотров
Пригласить эксперта
Ответы на вопрос 2
wppanda5
@wppanda5 Куратор тега WordPress
WordPress Mедведь
Как-нибудь так
add_filter( 'pre_get_document_title', 'wpp_change_the_document_title', 100 );
function wpp_change_the_document_title( $title ) {
	if ( ! empty( $_GET['location_location1'] ) ) :
		$title = 'The title for  GET location_location1';
	endif;

	return $title;
}
Ответ написан
artzolin
@artzolin Куратор тега WordPress
php, WordPress разработка сайтов artzolin.ru
Чтобы получить значение гет-запроса вы можете использовать функцию get_query_var(). Например, вы можете использовать эту функцию в фильтре the_title

if ( ! function_exists( 'the_title_callback' ) ) {

	/**
	 * Function for 'the_title' filter-hook.
	 * 
	 * @param string $post_title The post title.
	 * @param int    $post_id    The post ID.
	 *
	 * @return string
	 */
	function the_title_callback( $post_title, $post_id ) {

		$city = get_query_var( 'location_location1', false );

		if ( $city && get_converter_cities( $city ) ) {
			$post_title = $post_title . ' ' . get_converter_cities( $city );
		}

		return $post_title;
	}
}
add_filter( 'the_title', 'the_title_callback', 10, 2 );

if ( ! function_exists( 'get_converter_cities' ) ) {

	/**
	 * Return string or array with city values.
	 * 
	 * @since 1.0.0
	 *
	 * @param string $control Key to get one value. Optional. Default null.
	 *
	 * @return string|array|false
	 */
	function get_converter_cities( $control = null ) {

		// Sanitize string (just to be safe).
		if ( ! is_null( $control ) ) {
			$control = sanitize_title( $control );
		}

		// Main converter array.
		$converter = array(
			'abakan'  => __( 'Abakan', 'domain' ),
			'moscow'  => __( 'Moscow', 'domain' ),
			'saratov' => __( 'Saratov', 'domain' ),
		);

		$converter = apply_filters( 'get_converter_cities', $converter );

		// Return controls.
		if ( is_null( $control ) ) {
			return $converter;
		} elseif ( ! isset( $converter[ $control ] ) || empty( $converter[ $control ] ) ) {
			return false;
		} else {
			return $converter[ $control ];
		}
	}
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы