Ok, I disabled iThemes Security, but still have problem with titles..
Here is an English example: https://demo.djmimi.net/themes/reviews/search-page/?review-category=car-players
Title: Car Players – Search Page – Reviews
If All in One is enabled, there is only: Search Page – Reviews
without phrase ‘Car Players’ ??
In functions.php I found this code:
if( !function_exists('reviews_wp_title') ){
function reviews_wp_title( $title, $sep ) {
global $paged, $page, $reviews_slugs;
if ( is_feed() ){
return $title;
}
if( !empty( $_GET[$reviews_slugs['keyword']] ) ){
$title = $_GET[$reviews_slugs['keyword']]." $sep ".$title;
}
if( !empty( $_GET[$reviews_slugs['review-category']] ) ){
$term = get_term_by( 'slug', $_GET[$reviews_slugs['review-category']], 'review-category' );
$title = $term->name." $sep ".$title;
}
if( !empty( $_GET[$reviews_slugs['review-tag']] ) ){
$term = get_term_by( 'slug', $_GET[$reviews_slugs['review-tag']], 'review-tag' );
$title = $term->name." $sep ".$title;
}
return $title;
}
add_filter( 'wp_title', 'reviews_wp_title', 10, 2 );
}
if( !function_exists('reviews_wp_title_new') ){
function reviews_wp_title_new( $title ) {
global $reviews_slugs;
if( !empty( $_GET[$reviews_slugs['keyword']] ) ){
$title['title'] = $_GET[$reviews_slugs['keyword']]." - ".$title['title'];
}
if( !empty( $_GET[$reviews_slugs['review-category']] ) ){
$term = get_term_by( 'slug', $_GET[$reviews_slugs['review-category']], 'review-category' );
$title['title'] = $term->name." - ".$title['title'];
}
if( !empty( $_GET[$reviews_slugs['review-tag']] ) ){
$term = get_term_by( 'slug', $_GET[$reviews_slugs['review-tag']], 'review-tag' );
$title['title'] = $term->name." - ".$title['title'];
}
return $title;
}
add_filter( 'document_title_parts', 'reviews_wp_title_new', 10, 1 );
}
if( !function_exists('reviews_wp_seo_title') ){
function reviews_wp_seo_title( $title ) {
global $reviews_slugs;
if( !empty( $_GET[$reviews_slugs['keyword']] ) ){
$title = $_GET[$reviews_slugs['keyword']]." - ".$title;
}
if( !empty( $_GET[$reviews_slugs['review-category']] ) ){
$term = get_term_by( 'slug', $_GET[$reviews_slugs['review-category']], 'review-category' );
$title = $term->name." - ".$title;
}
if( !empty( $_GET[$reviews_slugs['review-tag']] ) ){
$term = get_term_by( 'slug', $_GET[$reviews_slugs['review-tag']], 'review-tag' );
$title = $term->name." - ".$title;
}
return $title;
}
add_filter( 'wpseo_title', 'reviews_wp_seo_title' );
}
I noticed that the titles are set in “document_title_parts” filter