Woocommerce: Как не выводить категории, где нет товаров (или убрать категории в драфт)?
В ИМ стопицот товаров, убранных в draft, Отображается только малая часть товаров, под которые выделены специальные товарные категории. Остальные товары, по мере необходимости, вытаскиваются из драфта, редактируются и публикуются в новых категориях.
Однако, если мы можем товары убрать в драфт, то с категориями такого сделать не получается, и они физически, как сущность, доступны в движке. А так же они доступны по прямому url. Следовательно, поисковик индексирует страницу с товарной категорией, где одна только надпись - "товаров в этой категории нет".
Существует ли хук, или другая какая возможность, перенаправлять такие категории, в которых нет товаров - на специальную 404 страницу?
if( is_product_category() ){
$category = get_queried_object();
if( ($category->count) == 0){ // Если количество товаров равно нулю возвращаем 404 заголовок
header("HTTP/1.0 404 Not Found");
}
}
Здравствуйте!
1) вы можете закрыть доступ к категориям через роботс
2) Смотря как вы выводите категории на странице. Если это виджет, то скрыть можно через хук.
1) вы можете закрыть доступ к категориям через роботс
мне сложно понять, как закрыть доступ к категориям через роботс, если этих категорий на сайте 863. Все перечислять - кажется, очень сложно :(
2) Категории, да, выводятся через виджет. И что удивительно - виджет не публикует ссылки на те атегории, у которых нет открытых (опубликованных) товаров. Как роботы узнают ссылки на пустые категории - непонятно, в карте сайта их тоже нет. Возможно, они были проиндексированны тогда, когда товары в них были...
Эдуард Валеев,
Возможно, что они были проиндексированы ранее. Можно закрыть через роботс, а можно добавить метатег для закрытия от индексации. В head получаете кол-во товаров. Если кол-во 0, то вставляете тег. Это чтобы каждую ссылку в роботс не писать.