我正在创建自己的Wordpress主题,并试图使其与Woocommerce兼容。我几乎了解woocommerce主题的所有内容,包括复制模板文件和更改它们,而且我还可以使用一些woocommerce挂钩。
现在Woocommerce使用归档产品。php文件来显示商店项目,目前它也在使用一个名为“shop”的页面。问题是我无法在存档产品中使用自定义的元框数据。当我将它们保存在“Shop”页面时的php文件。
所以我只想知道是否有在归档模板中使用元数据的方法,比如归档产品。Woocommerce的php模板。
有什么建议吗?
Edit: 因此,我能够通过在我包含的文件中使用以下代码完全解决我的问题:
if( is_shop() ) {
$post_id = get_option( \'woocommerce_shop_page_id\' );;
} else {
$post_id = $post->ID;
}
$meta_key = get_post_meta($post_id, \'meta_key\', true);
最合适的回答,由SO网友:aj-adl 整理而成
Woocommerce确实劫持了商店页面/产品查询上的主查询,因此您可能习惯于在循环中引用自定义字段,或者在其他一些上下文中引用全局$post是您所在的页面,但在这种情况下,$post的内容将是Woocommerce产品,而不是页面。
如果这是您的基本店铺页面,您可以引用这样的自定义字段(更改自定义元框字段的meta\\u键)
//returns shop page post object
$your_shop_page = get_post( wc_get_page_id( \'shop\' ) );
//access your meta fields like this
$your_shop-page->your_meta_key;
我希望这对您的情况有所帮助,如果您使用上述代码,那么在尝试输出这些值之前,确保您位于商店页面上并且这些值存在,请始终进行防御性编码!