Как я могу проверить, что все мои категории имеют значения метатегов (Заголовок, Описание, ключевые слова)


Мне нужно проверить, что все мои категории имеют правильные мета-теги (название, описание, ключевые слова). В какой таблице хранится значение мета-тегов категории (заголовок, описание, ключевые слова).

Author: sv3n, 2017-06-15

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