从类别下拉列表中选择后,wordpress 更改类别表示

Posted

技术标签:

【中文标题】从类别下拉列表中选择后,wordpress 更改类别表示【英文标题】:wordpress change category presentation after choosing from category dropdown 【发布时间】:2014-01-04 08:08:51 【问题描述】:

我正在尝试构建一个显示帖子存档的插件。我做到了,它工作正常,但我想添加一个类别下拉列表,选择一个后,存档将刷新并显示选择的类别。这是相关的代码,但它不起作用。选择一个类别后没有任何反应,需要刷新..关于如何做到这一点的任何想法?

<?php wp_dropdown_categories('show_option_none=Select category'); ?>
<script type="text/javascript"><!--
    var dropdown = document.getElementById("cat");
    function onCatChange() 
        if ( dropdown.options[dropdown.selectedIndex].value > 0 ) 
            location.href = "<?php echo get_option('home');
?>/?cat="+dropdown.options[dropdown.selectedIndex].value;
        
    
--></script>
</li>
      <ul class="zeevul">
<?php query_posts( array ( 'cat' => 'dropdown.options[dropdown.selectedIndex].value', 'posts_per_page' => 999));
if (have_posts()) : while (have_posts()) : the_post();
  // do whatever you want
?>
<li>
<h2 href="<?php the_permalink(); ?>"><?php the_title(); ?></h2>
<p><?php echo excerpt($words); ?></p>

【问题讨论】:

【参考方案1】:

我认为这里的方法是错误的。此处的 Javascript 和 PHP 的组合并不是显示的那样是双向的。

据我所知,在 query_posts 上,您无法将参数从 JS 传递给 PHP。现在您正在传递一个字符串以使用“dropdown.options....”查询数据库,这只是服务器的字符串,而不是真正的值。

我认为最好将 Dropbox 做成一个表单,每次更改都会自行发布。作为帖子发送的参数将是所选索引的值,即类别 ID。使用 PHP “捕捉”该值并简单地查询该类别的帖子。

您可以使用“post”或“get”,因为我认为 post 在 WP 中处理起来有点棘手。

希望对您有所帮助。

【讨论】:

以上是关于从类别下拉列表中选择后,wordpress 更改类别表示的主要内容,如果未能解决你的问题,请参考以下文章

DataGridView ComboBox Column:从下拉列表中选择后更改单元格值?

php WordPress |类别过滤器下拉列表

更改下拉列表中关键字的默认顺序

CSS - wordpress 如何更改下拉元素的字体样式

联系表格 7 - Wordpress - 从 <select> 下拉列表中选择默认值

php - Laravel:如何在从下拉列表中选择更改后加载 Ajax 数据?