Всем привет!
Столкнулся с очень странным для меня багом - через файл функций, меняю заголовки и метатеги на нужные мне. Все работает отлично, выводится как надо, но вот странность - это работает только если я залогинен на сайте. Если открыть сайт в другом браузере или выйдти из админки - view-source:volga.vashs.com/volgann/barabani/barabani-hp/ вот такая каша, при этом заголовок стандартный, не измененный.
В чем может быть дело? Ниже код функции:
add_action('template_redirect', 'before_header', 0);
add_action('wp_head', 'after_header', 900);
function before_header (){
if(is_product()){
ob_start('change_title_tag');
}
elseif(is_product_category()) {
ob_start('change_title_tag');
}
}
function change_title_tag($head) {
if(is_product()){
$title = get_the_title();
$artsku = get_post_meta( get_the_ID(), '_sku', true);
return eregi_replace('<title>[^<]*</title>', '<title>Купить '.$title.', '.$artsku.' : отзывы, фото, цена</title>', $head);
}
elseif(is_product_category()) {
$term_id = get_queried_object()->term_id;;
$taxonomy = 'product_cat';
$term = get_term( $term_id, $taxonomy );
$name = $term->name;
$term_par = get_term( $term->parent, $taxonomy ); // данные родительской категории
$name_par = $term_par->name; // получаем название родительской категории
return eregi_replace('<title>[^<]*</title>', '<title>Купить '.$name_par.' '.$name.': отзывы, фото, цена</title>', $head);
}
}
function after_header() {
if(is_product()){
ob_end_flush();
}
elseif(is_product_category()) {
ob_start('change_title_tag');
}
}
add_action("wp_head", "wp_head_extra_code", 1);
function wp_head_extra_code() {
if(is_product()){
$title = get_the_title();
$artsku = get_post_meta( get_the_ID(), '_sku', true);
$rpice = get_post_meta( get_the_ID(), '_regular_price', true);
echo '<meta name="description" content="'.$title.' за '.$rpice.' рублей. Покупайте с выгодой - '.$title.' в интернет-магазине ГК Волга. Артикул: '.$artsku.'." />';
echo '<meta name="keywords" content="'.$title.', артикул '.$artsku.'" />';
}
elseif(is_product_category()) {
$term_id = get_queried_object()->term_id; // ID нынешней категории
$taxonomy = 'product_cat'; // таксономия категорий товаров
$term = get_term( $term_id, $taxonomy ); // данные нынешней категории
$name = $term->name; // получаем название нынешней категории
$term_par = get_term( $term->parent, $taxonomy ); // данные родительской категории
$name_par = $term_par->name; // получаем название родительской категории
echo '<meta name="description" content="'.$name_par.' '.$name.' покупайте с выгодой - '.$name_par.' '.$name.' в интернет-магазине ГК Волга." />';
echo '<meta name="keywords" content="'.$name_par.' '.$name.'" />';
}
}