这个year
, monthnum
, day
和w
(周)参数仅用于突出显示/预选列表/输出中的当前项目,并且仅在日期和类别存档等存档页面上生效。“突出显示”,我的意思是WordPress会添加selected=\'selected\'
(如果format
是option
) 或aria-current="page"
(对于其他format
比link
) 到输出。类似这样(注意selected
属性):
// Assume $results contains database\'s rows (row objects).
// And \'2018\' is in the $args you pass to wp_get_archives().
$output = \'\';
foreach ( $results as $row ) {
if ( is_archive() && \'2018\' === $row->year ) {
$output .= \'<option value="2018" selected>2018</option>\';
} else {
$output .= \'<option value="2018">2018</option>\';
}
}
尝试以下内容并访问任何存档页面,您将看到年份
2018
选项已预选:$my_archives = \'<select>\' . wp_get_archives( array(
\'type\' => \'yearly\',
\'limit\' => 10,
\'echo\' => 0,
\'year\' => \'2018\',
\'format\' => \'option\', // this outputs an <option>
) ) . \'</select>\';
以下其他示例,假设2018年11月1日有一个(公开)帖子:And that you\'re on an archive page &mdash;在其他页面(如单篇帖子)上,这四个参数(year
, monthnum
, day
和w
) 默认为main query.
何时format
是monthly
, November 2018
将预先选择:
$my_archives = \'<select>\' . wp_get_archives( array(
\'type\' => \'monthly\',
\'limit\' => 10,
\'echo\' => 0,
\'year\' => \'2018\',
\'format\' => \'option\',
\'monthnum\' => 11,
) ) . \'</select>\';
何时
format
是
weekly
,
October 29, 2018–November 4, 2018
(2018年第44周)
$my_archives = \'<select>\' . wp_get_archives( array(
\'type\' => \'weekly\',
\'limit\' => 10,
\'echo\' => 0,
\'year\' => \'2018\',
\'format\' => \'option\',
\'w\' => 44,
) ) . \'</select>\';
何时
format
是
daily
,
November 1, 2018
将预先选择:
$my_archives = \'<select>\' . wp_get_archives( array(
\'type\' => \'daily\',
\'limit\' => 10,
\'echo\' => 0,
\'year\' => \'2018\',
\'format\' => \'option\',
\'monthnum\' => 11,
\'day\' => 1,
) ) . \'</select>\';
以便
year
参数不会提供您想要的结果;但是,可以使用
getarchives_where
hook 结合自定义参数,如下所示:
这应该放在主题的functions.php
文件:
add_filter( \'getarchives_where\', function ( $where, $parsed_args ) {
if ( ! empty( $parsed_args[\'in_year\'] ) ) {
$year = absint( $parsed_args[\'in_year\'] );
$where .= " AND YEAR(post_date) = $year";
}
return $where;
}, 10, 2 );
当你打电话的时候
wp_get_archives()
, 只需使用
in_year
参数仅包括特定年份的存档:(*您可以更改参数名称,但也可以在上面进行更改。)
$my_archives = wp_get_archives( array(
\'type\' => \'monthly\',
\'limit\' => 10,
\'echo\' => 0,
\'in_year\' => \'2018\', // custom parameter
) );
但您仍然可以使用标准
year
参数以突出显示/预选相关项目。