我使用此插件在窗口小部件中显示活动类别或子类别说明。
http://wordpress.org/support/plugin/category-description-widget
直接从菜单或其他小部件单击类别或子类别时,这非常有用。
但是,我也希望在查看当前帖子时显示此小部件。 任何帮助将不胜感激。
EG。让我们说我们的类别和子类别是相应的结构:
目前的工作原理如下:
当我点击地理位置时,会显示地理位置下的所有帖子。 在小部件中,插件显示地理位置的描述。
当我点击海洋时,会显示海洋下的所有帖子。 在小部件中,插件显示Ocean的描述。
我想补充一下:
当我在Ocean下的帖子中时,小部件应显示Ocean的描述。
以下是插件代码:
class Category_Description_Widget extends WP_Widget {
public function __construct() {
parent::__construct(
'category_description_widget', // Base ID
'Category Description Widget', // Name
array( 'description' => 'A widget with the category description', ) // Args
);
}
public function widget( $args, $instance ) {
if(!is_tax() && !is_category() && !is_tag()){
return false;
}
extract( $args );
echo $before_widget;
echo term_description();
echo $after_widget;
}
}
function category_description_widget_init(){
register_widget('Category_Description_Widget');
}
add_action( 'widgets_init', 'category_description_widget_init');
答案 0 :(得分:0)
应该这样做。
class Category_Description_Widget extends WP_Widget {
public function __construct() {
parent::__construct(
'category_description_widget', // Base ID
'Category Description Widget', // Name
array( 'description' => 'A widget with the category description', ) // Args
);
}
public function widget( $args, $instance ) {
global $post;
if(!is_tax() && !is_category() && !is_tag() && !is_single()){
return false;
}
extract( $args );
if ( is_single() ) {
//Get current post category.
$cat = get_the_category($post->ID);
echo $before_widget;
echo $cat[0]->category_description;
echo $after_widget;
} else {
echo $before_widget;
echo term_description();
echo $after_widget;
}
}
}
function category_description_widget_init(){
register_widget('Category_Description_Widget');
}
add_action( 'widgets_init', 'category_description_widget_init');