我正在为Woothemes'Canvas开发儿童主题。
我试图在子主题中使用functions.php仅对我的自定义帖子类型使用操作。
此代码似乎不起作用:
add_action( 'woo_post_inside_after', 'my_geo_mashup' );
function my_geo_mashup() {
echo GeoMashup::map();
if ($post->post_type == 'listings') {
//My function
}
}
add_action( 'woo_post_inside_before', 'listings_nivo' );
function listings_nivo() {
echo do_shortcode('[nivo source="current-post" ]');
if ($post->post_type == 'listings') {
//My function
}
}
所以,我不确定如何让上面的内容正常工作,只在自定义帖子类型上显示这些项目,或者仅针对自定义帖子类型模板single-listings.php(因为我只想要地图和滑块)显示在实际帖子上,而不是在博客页面(archive.php)上显示
答案 0 :(得分:0)
在您的功能中,尝试添加global $post;
。然后通过$post->post_type
查看您获得的内容,将其回显到屏幕上。只要这给你“列表”,你的代码应该工作。如果没有,可能还有另一个问题在起作用。
答案 1 :(得分:0)
不是将整个$ post对象设为全局,而是可以将$ post_type设为全局。在下面。
我不确定该函数的加载位置,但请务必在帖子中的某处挂钩。如果操作在之前,据我所知和经验,post变量将为null。
就像测试一样,尝试在wp_footer Ex中运行该操作。 add_action('wp_footer','listings_nivo'); 看看是否有任何结果。
如果回显var_dump($ post)仍为null,那么,不确定从那里开始。
因此,您可以尝试运行以下内容,然后在适当的位置运行操作:
function listings_nivo() {
echo do_shortcode('[nivo source="current-post" ]');
global $post_type;
// Diagnostic purposes
echo var_dump($post_type);
if ($post_type == 'listings') {
//My function
}
}
add_action( 'wp_footer', 'listings_nivo' );
检查您的错误日志或在wp-config.php文件中将wp_debug变为true,如果没有其他内容可以查看是否还有其他内容。
祝你好运!