在没有任何插件的情况下,在WordPress的侧边栏中显示选定类别的图书,可以通过以下步骤实现:
class Custom_Book_Widget extends WP_Widget {
// 构造函数
public function __construct() {
parent::__construct(
'custom_book_widget', // 小工具的ID
'选定类别的图书', // 小工具的名称
array( 'description' => '显示选定类别的图书' ) // 小工具的描述
);
}
// 前端显示
public function widget( $args, $instance ) {
$category_id = $instance['category_id']; // 获取选定的类别ID
$books = get_posts( array(
'category' => $category_id, // 设置类别ID
'post_type' => 'book', // 设置自定义文章类型为'book'
'posts_per_page' => 5 // 设置显示的图书数量
) );
echo $args['before_widget'];
echo $args['before_title'] . '选定类别的图书' . $args['after_title'];
echo '<ul>';
foreach ( $books as $book ) {
echo '<li><a href="' . get_permalink( $book->ID ) . '">' . $book->post_title . '</a></li>';
}
echo '</ul>';
echo $args['after_widget'];
}
// 后台设置
public function form( $instance ) {
$category_id = ! empty( $instance['category_id'] ) ? $instance['category_id'] : '';
?>
<p>
<label for="<?php echo $this->get_field_id( 'category_id' ); ?>">选择类别:</label>
<select class="widefat" id="<?php echo $this->get_field_id( 'category_id' ); ?>" name="<?php echo $this->get_field_name( 'category_id' ); ?>">
<?php
$categories = get_categories();
foreach ( $categories as $category ) {
echo '<option value="' . $category->term_id . '" ' . selected( $category_id, $category->term_id, false ) . '>' . $category->name . '</option>';
}
?>
</select>
</p>
<?php
}
// 更新设置
public function update( $new_instance, $old_instance ) {
$instance = array();
$instance['category_id'] = ( ! empty( $new_instance['category_id'] ) ) ? sanitize_text_field( $new_instance['category_id'] ) : '';
return $instance;
}
}
// 注册自定义小工具
function register_custom_book_widget() {
register_widget( 'Custom_Book_Widget' );
}
add_action( 'widgets_init', 'register_custom_book_widget' );
这样,侧边栏就会显示选定类别的图书列表。每当你在该类别下发布新的图书时,侧边栏的图书列表也会自动更新。
请注意,以上代码是基于WordPress的默认功能实现的,没有使用任何插件。对于图书的自定义文章类型和类别的设置,请根据实际情况进行调整。
腾讯云相关产品和产品介绍链接地址:
以上是一个示例答案,具体的实现方式可能因个人需求和环境而异。
领取专属 10元无门槛券
手把手带您无忧上云