- 查询所有tag及其对应跳转链接
$tags = get_tags(array('get'=>'all'));
$output .= '<ul class="tag-cloud-list">';
if($tags) {
foreach ($tags as $tag):
$output .= '<li><a href="'. get_term_link($tag).'">'. $tag->name .'</a></li>';
endforeach;
} else {
_e('No tags created.', 'text-domain');
}
$output .= '</ul>';
echo $output;
-
交互tag查询
场景如下,通过页面中选中一个或多个tag进行交互查询选择tag下的文章,涉及到post请求
1、将post请求发送给根目录下的admin-ajax.php
2、在主题functions.php中通过钩子函数,处理传来的参数,返回处理结果 注意
js
中post请求的action:tagQuery,为回调钩子函数的tagQuery函数名称
// javascript
<?php $admin_url=admin_url( 'admin-ajax.php' ); ?>
$(document).ready(function($){
var data={
action:'tagQuery',
tag: param, // 要查询的tag数组
page: paged
}
$.post("<?php echo $admin_url;?>", data, function(response) {
if(!response){
return;
}else{
$("#tagRes").html(response);
}
});
});
// php functions.php
function tagQuery(){
$tagArr = $_POST['tag'];
$page = $_POST['page'];
// 动态分页查询
$quyStr = $tagArr[0];
for($i = 1 ; $i < count($tagArr) ; $i++){
$quyStr.='+'.$tagArr[$i]; // 多个tag查询,为+拼接的tag字符串
}
$tagQur = array(
'tag' => $quyStr,
'orderby' => 'modified',
'order' => 'DESC',
'posts_per_page'=> 12,
'paged'=> $page
);
$wp_query = new WP_Query($tagQur);
$max_page = $wp_query->max_num_pages; // 最大页数
query_posts( $tagQur );
while ( have_posts() ) : the_post();
$perLink = get_the_permalink();
echo "<a href=".$perLink.">";
echo post_item_show(1);
echo "</a>";
endwhile;
}
pageSet($page,$max_page);
}
wp_reset_query();
die();
}
add_action('wp_ajax_tagQuery', 'tagQuery');
add_action('wp_ajax_nopriv_tagQuery', 'tagQuery');
参考文章: