我们可以将 Wordpress 存档设置为 3 个月的时间限制吗
Posted
技术标签:
【中文标题】我们可以将 Wordpress 存档设置为 3 个月的时间限制吗【英文标题】:Can we set Wordpress archive with 3 month time limit 【发布时间】:2017-06-13 08:28:23 【问题描述】:如何将存档小部件下拉列表显示为 jan-march、april-june 那样
【问题讨论】:
你已经尝试了什么? 【参考方案1】:请使用以下代码获取 3 个月的帖子。
<?php
$args = array(
'date_query' => array(
array(
'after' => 'October 1st, 2016',
'before' => array(
'year' => 2016,
'month' => 12,
'day' => 31,
),
'inclusive' => true,
),
),
'posts_per_page' => -1,
);
$query = new WP_Query( $args ); ?>
您需要根据需要更改月份和年份。
【讨论】:
打扰一下,如何将存档小部件下拉列表显示为 jan-march, april-june 这样。 您需要创建一个带有下拉菜单的小部件,并且所选月份的帖子将显示在前端右侧。? 现在我的存档小部件下拉显示为 2017 年 3 月、2017 年 4 月至 2017 年,我需要显示为 2017 年 1 月至 3 月、2017 年 4 月至 6 月等,如【参考方案2】:请试试这个。将此代码放入您的主题 functions.php 文件中。
<?php
// Creating the widget
class wpb_widget extends WP_Widget
function __construct()
parent::__construct(
// Base ID of your widget
'wpb_widget',
// Widget name will appear in UI
__('WPBeginner Widget', 'wpb_widget_domain'),
// Widget description
array( 'description' => __( 'Sample widget based on WPBeginner Tutorial', 'wpb_widget_domain' ), )
);
// Creating widget front-end
public function widget( $args, $instance )
$title = apply_filters( 'widget_title', $instance['title'] );
$month = $instance['month'];
$ex=explode("-",$month);
// before and after widget arguments are defined by themes
echo $args['before_widget'];
if ( ! empty( $title ) )
echo $args['before_title'] . $title . $args['after_title'];
$date = $ex[1];
$m=date('m', strtotime($date));
$after=$ex[0].' 1st, 2017';
$number = cal_days_in_month(CAL_GREGORIAN, $m, 2017);
$before=array(
'year' => 2017,
'month' => $m,
'day' => $number,
);
// This is where you run the code and display the output
$args = array(
'post_type' =>"post",
'date_query' => array(
array(
'after' => "'".$after."'",
'before' => $before,
'inclusive' => true,
),
),
'posts_per_page' => -1,
);
$querys = new WP_Query( $args );
if($querys->have_posts()):
while($querys->have_posts()):
$querys->the_post();
echo get_the_title()."<br>";
endwhile;
endif;
echo $args['after_widget'];
// Widget Backend
public function form( $instance )
if ( isset( $instance[ 'title' ] ) )
$title = $instance[ 'title' ];
else
$title = __( 'New title', 'wpb_widget_domain' );
if(isset($instance[ 'month' ]))
$month=$instance[ 'month' ];
else
$month='';
/// Widget admin form ?>
<p>
<label for="<?php echo $this->get_field_id( 'title' ); ?>"><?php _e( 'Title:' ); ?></label>
<input class="widefat" id="<?php echo $this->get_field_id( 'title' ); ?>" name="<?php echo $this->get_field_name( 'title' ); ?>" type="text" value="<?php echo esc_attr( $title ); ?>" />
</p>
<p>
<select id="<?php echo $this->get_field_id('month'); ?>" name="<?php echo $this->get_field_name('month'); ?>" class="widefat" style="width:100%;">
<option value="0">Select Month</option>
<option <?php selected( $instance['month'], 'january-march'); ?> value="january-march">Jan-Mar</option>
<option <?php selected( $instance['month'], 'april-june'); ?> value="april-june">April-June</option>
<option <?php selected( $instance['month'], 'july-september'); ?> value="july-september">July-Sep.</option>
<option <?php selected( $instance['month'], 'october-december'); ?> value="october-december">Oct.-Dec.</option>
</select>
</p>
<?php
// Updating widget replacing old instances with new
public function update( $new_instance, $old_instance )
$instance = array();
$instance['title'] = ( ! empty( $new_instance['title'] ) ) ? strip_tags( $new_instance['title'] ) : '';
$instance['month'] = ( ! empty( $new_instance['month'] ) ) ? strip_tags( $new_instance['month'] ) : '';
return $instance;
// Class wpb_widget ends here ?>
【讨论】:
哪个部分不工作?能不能请详细描述一下。 在function.php中添加了这段代码,没有任何反应 添加此代码后,请转到管理面板中的小部件区域。您可以看到“WpBeginner 小部件”并选择该小部件并选择要显示的月份范围。 另外请将 'post_type' =>"post" 更改为您的帖子类型。【参考方案3】:使用下面的核心函数,
<?php wp_get_archives( array( 'type' => 'monthly', 'limit' => 12 ) ); ?>
更多参考:https://codex.wordpress.org/Function_Reference/wp_get_archives
【讨论】:
打扰一下,如何将存档小部件下拉列表显示为 jan-march, april-june 这样。 替换您想要的月份,只需在archive.php中使用此代码并在小部件中创建自定义列表。 wordpress.stackexchange.com/questions/134423/…以上是关于我们可以将 Wordpress 存档设置为 3 个月的时间限制吗的主要内容,如果未能解决你的问题,请参考以下文章