如何使用自定义帖子类型的每个标签显示列表项作为数据过滤器和文本?

时间:2016-02-02 09:13:42

标签: php wordpress tags

作为php中的新手我无法实现一个因为我觉得非常简单的事情。

到目前为止我已经获得了这个代码(在php模板文件中):

<?php                                    
    //Define my custom post type name in the arguments                           
    $args = array('post_type' => 'reference-document');          
?> 

<ul> 
    <li><a href="#" data-filter=".2013">2013</a></li>
    <li><a href="#" data-filter=".2014">2014</a></li>
    <li><a href="#" data-filter=".2015">2015</a></li>      
</ul>

在我的自定义帖子类型&#39;参考文档&#39;我有一份2013,2014,2015年可用标签列表

现在,实际上,我的上述代码正在运行,但我希望根据用户在post-type中作为标签输入的年数输出li列表。 (所以最终也是2016,2017 ......)

所以我想我需要使用php循环创建列表,或者使用我的post-type的可用标记作为参数。到目前为止,我尝试过类似的事情:

<?php                           
    $tags = get_the_tags();   
    foreach ( $tags as $tag ) {
        echo '<li><a href="#" data-filter=".'.esc_attr($tag->tag_name).'">'.esc_attr($tag->tag_name).'</a></li>';
    }
?>

获得与“手动”实现的输出相同的输出。但是这会引发错误而且我很困惑。任何人如何能给我正确的代码?

请不要将我转发到正式的WP标准文件,因为我试图了解它们但没有成功。我需要具体的代码。然后我可能会理解它是如何工作的。非常感谢提前!

修改 当我在我的代码中添加if语句时:

<?php                           
    $tags = get_the_tags(); 
    if(!empty($tags)) {  
        foreach ( $tags as $tag ) {
            echo '<li><a href="#" data-filter=".'.esc_attr($tag->tag_name).'">'.esc_attr($tag->tag_name).'</a></li>';
        }
    }
?>

实际上没有更多的错误,但也没有任何反应。我想这意味着&#39;标签&#39;数组是空的。但为什么?在我的自定义帖子类型中分配了标签。正如我所说,我在这里真的很新,所以我猜我的代码包含一些语义疾病。请检查!

1 个答案:

答案 0 :(得分:0)

我至少部分地通过这样做取得了成功:

<table width="100%" cellspacing="0" cellpadding="0" border="0" align="center" class="table mt10 revelx">
<thead>
<tr>
<th nowrap="" align="left">Sailing Date</th>
<th width="18%" align="center"> <b>Inside</b> </th>
<th width="18%" align="center"> <b>Oceanview</b> </th>
<th width="18%" align="center"> <b>Balcony</b> </th>
<th width="18%" align="center"> <b>Suite</b> </th>
<th align="center">Compare</th>
<th class="noborder">&nbsp;</th>
</tr>
</thead>
<tbody>
<tr class="per_month1234">
<td id="date_sort"> <a class="loder123" href="#">   25th March 2016</a> </td>
<td> <span>714.55USD</span> </td>
<td>
<div>796.36USD</div>
</td>
<td>
<div>905.45USD</div>
</td>
<td>
<div>969.09USD</div>
</td>
<td align="center"> <input type="checkbox" class="compare_checkbox" id="352905" value="352905" name=""> </td>
<td align="center"> <a href="#"><input type="submit" class="button loder123" id="select_data352905" value="Select"></a> </td>
</tr>
<tr class="per_day1234" style="display: none;">
<td id="date_sort"> <a class="loder123" href="#">   25th March 2016</a> </td>
<td> <span>238.18USD<br>Per Day</span> </td>
<td>
<div>265.45USD<br>Per Day</div>
</td>
<td>
<div>301.82USD<br>Per Day</div>
</td>
<td>
<div>323.03USD<br>Per Day</div>
</td>
<td align="center"> <input type="checkbox" class="compare_checkbox" id="352905" value="352905" name=""> </td>
<td align="center"> <a href="#"><input type="submit" class="button loder123" id="select_data352905" value="Select"></a> </td>
</tr>
<tr class="per_month1234">
<td id="date_sort"> <a class="loder123" href="#">   1st April 2016</a> </td>
<td> <span>605.45USD</span> </td>
<td>
<div>678.18USD</div>
</td>
<td>
<div>769.09USD</div>
</td>
<td>
<div>832.73USD</div>
</td>
<td align="center"> <input type="checkbox" class="compare_checkbox" id="352887" value="352887" name=""> </td>
<td align="center"> <a href="#"><input type="submit" class="button loder123" id="select_data352887" value="Select"></a> </td>
</tr>
<tr class="per_day1234" style="display: none;">
<td id="date_sort"> <a class="loder123" href="#">   1st April 2016</a> </td>
<td> <span>201.82USD<br>Per Day</span> </td>
<td>
<div>226.06USD<br>Per Day</div>
</td>
<td>
<div>256.36USD<br>Per Day</div>
</td>
<td>
<div>277.58USD<br>Per Day</div>
</td>
<td align="center"> <input type="checkbox" class="compare_checkbox" id="352887" value="352887" name=""> </td>
<td align="center"> <a href="#"><input type="submit" class="button loder123" id="select_data352887" value="Select"></a> </td>
</tr>
<tr class="per_month1234">
<td id="date_sort"> <a class="loder123" href="#">   8th April 2016</a> </td>
<td> <span>605.45USD</span> </td>
<td>
<div>678.18USD</div>
</td>
<td>
<div>769.09USD</div>
</td>
<td>
<div>832.73USD</div>
</td>
<td align="center"> <input type="checkbox" class="compare_checkbox" id="352894" value="352894" name=""> </td>
<td align="center"> <a href="#"><input type="submit" class="button loder123" id="select_data352894" value="Select"></a> </td>
</tr>
<tr class="per_day1234" style="display: none;">
<td id="date_sort"> <a class="loder123" href="#">   8th April 2016</a> </td>
<td> <span>201.82USD<br>Per Day</span> </td>
<td>
<div>226.06USD<br>Per Day</div>
</td>
<td>
<div>256.36USD<br>Per Day</div>
</td>
<td>
<div>277.58USD<br>Per Day</div>
</td>
<td align="center"> <input type="checkbox" class="compare_checkbox" id="352894" value="352894" name=""> </td>
<td align="center"> <a href="#"><input type="submit" class="button loder123" id="select_data352894" value="Select"></a> </td>
</tr>
<tr class="per_month1234">
<td id="date_sort"> <a class="loder123" href="#">   15th April 2016</a> </td>
<td> <span>605.45USD</span> </td>
<td>
<div>678.18USD</div>
</td>
<td>
<div>769.09USD</div>
</td>
<td>
<div>832.73USD</div>
</td>
<td align="center"> <input type="checkbox" class="compare_checkbox" id="352878" value="352878" name=""> </td>
<td align="center"> <a href="#"><input type="submit" class="button loder123" id="select_data352878" value="Select"></a> </td>
</tr>
<tr class="per_day1234" style="display: none;">
<td id="date_sort"> <a class="loder123" href="#">   15th April 2016</a> </td>
<td> <span>201.82USD<br>Per Day</span> </td>
<td>
<div>226.06USD<br>Per Day</div>
</td>
<td>
<div>256.36USD<br>Per Day</div>
</td>
<td>
<div>277.58USD<br>Per Day</div>
</td>
<td align="center"> <input type="checkbox" class="compare_checkbox" id="352878" value="352878" name=""> </td>
<td align="center"> <a href="#"><input type="submit" class="button loder123" id="select_data352878" value="Select"></a> </td>
</tr>
</tbody>
<tbody class="max_id" id="max_id" style="display: none;"> </tbody>
<tbody> </tbody>
</table>
</div>
<div style="" class="relative_div red box">
<div class="bg_gray">
<div id="dmhd" class="">

<div id="data2" class="col-md-2"> </div>
<div id="data3" class="col-md-2"> </div>
<form method="POST" action="#">
<input type="hidden" id="value1" name="value1" value="352905"> <input type="hidden" id="value2" name="value2" value=""> <input type="hidden" id="value3" name="value3" value=""> 
<div class="col-md-2">
<input type="submit" class="button mt10 loder123" name="submit" value="Compare"> 
</div>
</form>
</div>
</div>
</div>

似乎我不了解为自定义帖子类型添加标签意味着什么,因为只要没有循环通过连接它们的帖子,它们似乎无法检索。我认为可以这样说:好的,这里我们有XXX后类型检查(或输出)i.g.对于同位素脚本,此“类别”存在哪些标记并显示它们。

我的解决方案留下的问题是检查哪些标签是双重的,然后先从数组中减去它们。