查詢所有tag及其對應跳轉鏈接
$tags = get_tags(array('get'=>'all'));
$output .= '
- ';
if($tags) {
foreach ($tags as $tag):
$output .= '
'. $tag->name .'';endforeach;
} else {
_e('No tags created.', 'text-domain');
}
$output .= '
';echo $output;
交互tag查詢
image
場景如下,通過頁面中選中一個或多個tag進行交互查詢選擇tag下的文章,涉及到post請求
1、將post請求發送給根目錄下的admin-ajax.php
2、在主題functions.php中通過鉤子函數,處理傳來的參數,返回處理結果
注意js中post請求的action:tagQuery,為回調鉤子函數的tagQuery函數名稱
// javascript
$(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 "";
echo post_item_show(1);
echo "";
endwhile;
}
pageSet($page,$max_page);
}
wp_reset_query();
die();
}
add_action('wp_ajax_tagQuery', 'tagQuery');
add_action('wp_ajax_nopriv_tagQuery', 'tagQuery');
參考文章: