我有带Fishpig_Wordpress模块的Magento。
我为帖子创建了一些新的postmeta数据,保存在postmeta表中。
我刚刚看到Fishpig在/Model/Mysql4/Post.php中具有自定义的加载SQL方法。
protected function _getLoadSelect($field, $value, $object)
{
$select = $this->_getReadAdapter()->select()
->from(array('e' => $this->getMainTable()))
->where("e.{$field}=?", $value);
if (Mage::getDesign()->getArea() == 'frontend') {
if (Mage::helper('wordpress/plugin_allInOneSeo')->isEnabled()) {
foreach(Mage::helper('wordpress/plugin_allInOneSeo')->getMetaFields() as $field) {
$table = 'aioseop_'.$field;
$select->joinLeft(
array($table => Mage::helper('wordpress/db')->getTableName('postmeta')),
"{$table}.post_id = e.ID AND ".$this->_getReadAdapter()->quoteInto("{$table}.meta_key=?", "_aioseop_{$field}"),
array('meta_'.$field => 'meta_value')
);
}
}
}
$select->limit(1);
return $select;
}
该方法在joinLeft方法中使用Mage :: helper('wordpress / db')-> getTableName('postmeta')。但是我不知道应该使用_getLoadSelect受保护的方法还是创建另一个类来调用postmeta表。
因此,问题是:
是否可以通过Fishpix模块从postmeta表获取数据,或者我需要为此创建一个新类?
最佳答案
对于现在阅读此内容的任何人,您都可以使用以下代码检索postmeta值:
<?php echo $post->getMetaValue('your_meta_key') ?>
相同的方法可用于具有元表(帖子,页面,评论,用户等)的任何WordPress实体