最も簡単な解決策は、フラットテーブルをオフにしてから、-> load(true)パラメーターを使用してmagentoが実行するSQLクエリを取得することであることがわかりました。
例えば
$collection = Mage::getModel('catalog/category')->getCollection();
$collection
->setStoreId($store->getId())
->addAttributeToSelect('*')
->addAttributeToFilter(array(array('attribute'=>'ig_unifeed_ids', 'like'=>"%:".$this->getId().":%")))
->load(true);
次に、フラットテーブルをオンに戻し、このコードを次のように置き換えます。
$resource = Mage::getSingleton('core/resource');
$readConnection = $resource->getConnection('core_read');
$query = "SELECT `e`.*, `at_ig_unifeed_ids`.`value` AS `ig_unifeed_ids` FROM `catalog_category_entity` AS `e` INNER JOIN `catalog_category_entity_varchar` AS `at_ig_unifeed_ids` ON (`at_ig_unifeed_ids`.`entity_id` = `e`.`entity_id`) AND (`at_ig_unifeed_ids`.`attribute_id` = '139') AND (`at_ig_unifeed_ids`.`store_id` = 0) WHERE (`e`.`entity_type_id` = '3') AND ((at_ig_unifeed_ids.value LIKE '%:".$this->getId().":%'))";
$collection = $readConnection->fetchAll($query);
この時点から、おそらく置換などの他のコードを変更する必要があります
$ category-> getId()
と
$ category ["entity_id"]
これが少し役立つことを願っています...
注:これは、フラットテーブルを使用するときにカテゴリフィルタリングを無視するIG_UnifeedモジュールのMagentoバグの実際の解決策です。