Как я могу проверить, что все мои категории имеют значения метатегов (Заголовок, Описание, ключевые слова)
Мне нужно проверить, что все мои категории имеют правильные мета-теги (название, описание, ключевые слова). В какой таблице хранится значение мета-тегов категории (заголовок, описание, ключевые слова).
1
2 answers
Вы можете попробовать это...
require_once('./app/Mage.php');
umask(0);
Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID);
$attributes = array('name', 'meta_title', 'meta_description', 'meta_keywords');
$collection = Mage::getModel('catalog/category')->getCollection()
->addAttributeToSelect($attributes);
$out = array();
foreach ($collection as $category) {
$out[$category->getId()] = array(
$category->getData('name'),
$category->getData('meta_title'),
$category->getData('meta_description'),
$category->getData('meta_keywords')
);
}
var_dump($out);
Редактировать: для CSV-экспорта:
$fp = fopen('file.csv', 'w');
foreach ($out as $fields) {
fputcsv($fp, $fields);
}
fclose($fp);
3
Author: sv3n, 2017-06-15 10:02:11
Все эти данные содержатся либо в таблицах catalog_category_entity_text, либо в таблицах catalog_category_entity_varchar. Следующий sql получит все имена категорий (и пути на случай, если у вас есть повторяющиеся имена категорий), где описание равно НУЛЮ. Вам нужно будет найти соответствующие значения entity_id для других нужных вам данных. (Значения, которые я привел ниже, предназначены специально для моей базы данных - ваша может отличаться). Я надеюсь, что это поможет вам начать
select ccev.value as name,ccet.value as description,cce.path from catalog_category_entity cce
join catalog_category_entity_text ccet on cce.entity_id = ccet.entity_id
join catalog_category_entity_varchar ccev on cce.entity_id =ccev.entity_id
where ccet.attribute_id='44'
and ccev.attribute_id='41'
and ccet.value is NULL
1
Author: jscar, 2017-06-15 09:09:27