【问题标题】:Wordpress Archive drop down yearlyWordPress 存档每年下拉
【发布时间】:2011-01-13 15:02:08
【问题描述】:

我在 wordpress 上有一个年度存档下拉选择框。代码如下:

<select name="archive-dropdown" onchange="document.location.href=this.options[this.selectedIndex].value;">
<option value=""><?php echo esc_attr( __( 'Select Year' ) ); ?></option> 
<?php wp_get_archives( 'type=yearly&format=option&show_post_count=0' ); ?>
</select>

一旦我选择了一个年份,比如 2006,下拉框应该显示 2006。目前它显示默认的“选择年份”。

【问题讨论】:

  • 我不明白问题是什么?您的意思是您要预先选择页面重新加载的年份?

标签: php wordpress archive


【解决方案1】:

问题在于wp_get_archives 函数无法设置“默认”选定年份。

因此,您有几个选择:

  1. 基于 wp_get_archives 实现您自己的函数。这是一个相当深的功能,可能会在未来的实现中发生变化,所以这可能不是一个好主意。

  2. 对从 wp_get_archives 返回的数据进行后处理,以添加当前年份的“selected="selected"”。

  3. 使用加载页面时执行的 JavaScript 函数来扫描选择选项并设置默认值。

其中,我可能会选择第二个选项。 (您应该可以简单地根据找到所需的&lt;option value='XXX'&gt; 并将其与&lt;option value='XXX' selected="selected"&gt; 交换来执行str_replace。)

【讨论】:

  • 我很乐意使用#2,但您能否在此处发送完整代码,因为我不确定如何放入该 sn-p。
  • @Barnabas Nagy - 抱歉,我没有方便的 Wordpress 安装来对其进行编码。但是,可以将 wp_get_archives 函数设置为返回而不是输出(使用 echo 参数设置为 false - 请参阅我上面链接到的文档)。因此,您只需在变量中捕获返回的数据,然后在输出之前将其 str_replace 替换为我上面概述的变量中的数据。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-17
  • 2013-02-09
  • 1970-01-01
  • 2016-12-23
  • 1970-01-01
  • 2013-01-07
相关资源
最近更新 更多