• Никакой политики на форуме. Иначе - бан!
  • Вопрос без рабочей ссылки на проблему считается риторическим. Без ссылки и скриншота - провокацией!
  • Темы озаглавленные с маленькой буквы или капсом удаляются без предупреждения!

Как создать несколько шаблонов/макетов для вывода категорий?

WOLF666

Новичок
Добое время суток. Уже борюсь неделю с этой проблемой.
У меня такая задача: Есть категория товара, он(товар выводиться через single-product.php). Но мне нужно сделать так что бы товары принадлежащие к определенной категории выводились по другому шаблону к примеру beidj.php(категория Бейджи).

Пробовал я выводить таким вот кодом:

add_filter( 'template_include', 'beidj' );
function beidj ($templ){
$templ1='';
global $post;

if(!$post) return $templ;
else {
$terms = array_shift(wc_get_product_terms( $post->ID, 'product_cat'));
if(6==$terms->id)
$templ1=str_replace(".php","beidj.php",$templ) ;

}
return $templ1;
}

Также здесь на форуме нашел как выводить плагином Post Template... Но ничего не выходит.

В первом варианте вообще ничего не получилось, а с плагином белый екран...
 

searchingman

Гуру
Местный
Добое время суток. Уже борюсь неделю с этой проблемой.
У меня такая задача: Есть категория товара, он(товар выводиться через single-product.php). Но мне нужно сделать так что бы товары принадлежащие к определенной категории выводились по другому шаблону к примеру beidj.php(категория Бейджи).

Пробовал я выводить таким вот кодом:

add_filter( 'template_include', 'beidj' );
function beidj ($templ){
$templ1='';
global $post;

if(!$post) return $templ;
else {
$terms = array_shift(wc_get_product_terms( $post->ID, 'product_cat'));
if(6==$terms->id)
$templ1=str_replace(".php","beidj.php",$templ) ;

}
return $templ1;
}

Также здесь на форуме нашел как выводить плагином Post Template... Но ничего не выходит.

В первом варианте вообще ничего не получилось, а с плагином белый екран...
Плагин post template должен быть немного модифицирован вот так.
 

joy66

Опытный
Местный
Добое время суток. Уже борюсь неделю с этой проблемой.
У меня такая задача: Есть категория товара, он(товар выводиться через single-product.php). Но мне нужно сделать так что бы товары принадлежащие к определенной категории выводились по другому шаблону к примеру beidj.php(категория Бейджи).

Пробовал я выводить таким вот кодом:

add_filter( 'template_include', 'beidj' );
function beidj ($templ){
$templ1='';
global $post;

if(!$post) return $templ;
else {
$terms = array_shift(wc_get_product_terms( $post->ID, 'product_cat'));
if(6==$terms->id)
$templ1=str_replace(".php","beidj.php",$templ) ;

}
return $templ1;
}

Также здесь на форуме нашел как выводить плагином Post Template... Но ничего не выходит.

В первом варианте вообще ничего не получилось, а с плагином белый екран...
Пробовал я выводить таким вот кодом:
На форуме, где вы задавали этот вопрос изначально и откуда воспроизводите мой код, я вам и ответил )))
 
Последнее редактирование:

WOLF666

Новичок
Ничего не выводится и не изменяется. Потому и спросил еще здесь, что бы кто-то посмотрел свежим взглядом и помог.
 

searchingman

Гуру
Местный
С самого начала изменил его так, но получаю только белый екран. Не могу решить эту проблему... Уже не знаю что делать.
"Белый экран" означает что у Вас ошибки.
Чтобы увидеть какие ошибки нужно включить режим отладки. Как включить режим отладки можно посмотреть в FAQ.
 

WOLF666

Новичок
Включил отображение ошибок, была ошибка относительно БД исправил ошибки не выводятся больше, но всеравно белый екран.
Когда в коде ставлю вместо 100 от 1-9, то отображается стандартный шаблон.

//add_filter('single_template','wp_get_custom_post_template_for_template_loader');
add_filter('template_include','wp_get_custom_post_template_for_template_loader', 9);

В новом шаблоне изменения минимальны только картинку внизу страницы сменил и все....

Вот сайт: http://medshvetsmarka.com.ua/
Ссылка на товар на котором применил этот плагин(но врятли чем поможет): http://medshvetsmarka.com.ua/shop/beydzhi/ukrainska-beydzh-metallicheskiy-dlya-g/

DВот что со временем появилось в логах хостинга:

mod_fcgid: stderr: \xd0\x91\xd0\xb0\xd0\xb7\xd0\xb0 \xd0\xb4\xd0\xb0\xd0\xbd\xd0\xbd\xd1\x8b\xd1\x85 WordPress \xd0\xb2\xd0\xbe\xd0\xb7\xd0\xb2\xd1\x80\xd0\xb0\xd1\x82\xd0\xb8\xd0\xbb\xd0\xb0 \xd0\xbe\xd1\x88\xd0\xb8\xd0\xb1\xd0\xba\xd1\x83 Unknown column 'msm_postmeta.meta_value' in 'order clause' \xd0\xb2 \xd0\xbe\xd1\x82\xd0\xb2\xd0\xb5\xd1\x82 \xd0\xbd\xd0\xb0 \xd0\xb7\xd0\xb0\xd0\xbf\xd1\x80\xd0\xbe\xd1\x81 SELECT msm_posts.ID FROM msm_posts INNER JOIN msm_term_relationships ON (msm_posts.ID = msm_term_relationships.object_id) WHERE 1=1 AND (

mod_fcgid: stderr: msm_term_relationships.term_taxonomy_id IN (139)

mod_fcgid: stderr: ) AND msm_posts.post_type = 'product' AND ((msm_posts.post_status = 'publish')) GROUP BY msm_posts.ID ORDER BY msm_postmeta.meta_value+0 DESC, msm_posts.post_date DESC , \xd0\xb2\xd1\x8b\xd0\xbf\xd0\xbe\xd0\xbb\xd0\xbd\xd0\xb5\xd0\xbd\xd0\xbd\xd1\x8b\xd0\xb9 require('wp-blog-header.php'), wp, WP->main, WP->query_posts, WP_Query->query, WP_Query->get_posts, do_action_ref_array, call_user_func_array, WC_Query->pre_get_posts, WC_Query->product_query, apply_filters('loop_shop_post_in'), call_user_func_array, WC_Query->layered_nav_query, get_posts, WP_Query->query, WP_Query->get_posts
 
Последнее редактирование:

WOLF666

Новичок
"Белый экран" означает что у Вас ошибки.
Чтобы увидеть какие ошибки нужно включить режим отладки. Как включить режим отладки можно посмотреть в FAQ.
Никаких ошибок не выводит. Есть только те которые написаны в письме выше это в логах на хостинге
 
Сверху Снизу