【发布时间】:2014-02-11 11:44:50
【问题描述】:
我有一个扩展 Visual Composer 插件的主题,在首页上有一个滑块。滑块将显示来自五个不同客户的五个推荐。我想将每个推荐的特色图像添加为滑块中的缩略图。
这是父主题的缩短代码:
function jo_customers_testimonials_slider( $atts ) {
extract( shortcode_atts( array( 'limit' => 5, "widget_title" => __('What Are People Saying', 'jo'), 'text_color' => "#000" ), $atts ) );
$content = "";
$loopArgs = array( "post_type" => "customers", "posts_per_page" => $limit, 'ignore_sticky_posts' => 1 );
$postsLoop = new WP_Query( $loopArgs );
$content = "";
$content .= '...';
$content .= '...';
$content .= '...';
wp_reset_query();
return $content;
}
add_shortcode( 'jo_customers_testimonials_slider', 'jo_customers_testimonials_slider' );
我的functions.php文件:
function jo_customers_testimonials_slider_with_thumbnail( $atts ) {
extract( shortcode_atts( array( 'limit' => 5, "widget_title" => __('What Are People Saying', 'jo'), 'text_color' => "#000" ), $atts ) );
$content = "";
$loopArgs = array( "post_type" => "customers", "posts_per_page" => $limit, 'ignore_sticky_posts' => 1 );
$postsLoop = new WP_Query( $loopArgs );
$content = "";
$content .= '...';
$content .= get_the_post_thumbnail( get_the_ID(), 'thumbnail' );
$content .= '...';
$content .= '...';
wp_reset_query();
return $content;
}
add_shortcode( 'jo_customers_testimonials_slider', 'jo_customers_testimonials_slider_with_thumbnail' );
理论上,我的 functions.php 文件中的函数应该覆盖父主题中的简码。但是当我使用这段代码时似乎什么都没有发生。我做错了什么?
编辑:
试了这段代码,还是不行。
function wpa_add_child_shortcodes(){
remove_shortcode('jo_customers_testimonials_slider');
add_shortcode( 'jo_customers_testimonials_slider', 'jo_customers_testimonials_slider_with_thumbnail' );
}
add_action( 'after_setup_theme', 'wpa_add_child_shortcodes' );
也改变了
add_action( 'after_setup_theme', 'wpa_add_child_shortcodes' ); 到
add_action( 'init', 'wpa_add_child_shortcodes' );
,但结果没有区别。
编辑 2(有解决方案):
将add_action( 'after_setup_theme', 'wpa_add_child_shortcodes' ); 更改为add_action( 'wp_loaded', 'wpa_add_child_shortcodes' ); 解决了它。
【问题讨论】:
标签: php wordpress-theming wordpress