青年是个既非成人又非孩提的时代。 ——帕尔格雷夫

wordpress多tag联动查询代码

言冬 2015.01.17 其他分享 , 爱吐槽 , 爱折腾 24 条评论 标签: , 心情: 天气:

实例页面:http://www.gengu.org/tag/lol

可能要用到的代码一:添加自定义分类法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
/* 自定义分类法 */
// 增加心情
// 增加天气
// 搜索关键字 register_taxonomy
add_action( 'init', 'create_mood' );
function create_mood() {
$labels = array(
	'name' => _x( '心情标签', '当时心情' ),
	'singular_name' => _x( 'mood', 'taxonomy singular name' ),
	'search_items' =>  __( '心情搜索' ),
	'all_items' => __( '全部心情' ),
	'parent_item' => __( '上级心情' ),
	'parent_item_colon' => __( '上级心情:' ),
	'edit_item' => __( '修改标签' ),
	'update_item' => __( '更新标签' ),
	'add_new_item' => __( '增加新的心情标签' ),
	'new_item_name' => __( '新心情名字' ),
	);
 
  register_taxonomy('mood','post',array(
	'hierarchical' => false,
	'labels' => $labels
	));
}
add_action( 'init', 'create_weather' );
function create_weather() {
$labels = array(
	'name' => _x( '天气标签', '当时天气' ),
	'singular_name' => _x( 'weather', 'taxonomy singular name' ),
	'search_items' =>  __( '天气搜索' ),
	'all_items' => __( '全部天气' ),
	'parent_item' => __( '上级天气' ),
	'parent_item_colon' => __( '上级天气:' ),
	'edit_item' => __( '修改标签' ),
	'update_item' => __( '更新标签' ),
	'add_new_item' => __( '增加新的天气标签' ),
	'new_item_name' => __( '新天气名字' ),
	);
 
  register_taxonomy('weather','post',array(
	'hierarchical' => false,
	'labels' => $labels
	));
}
// -- END ----------------------------------------

可能要用到的代码二:taxonomy.php代码示范

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
<?php if (!defined('AUTH_KEY')){header('HTTP/1.0 404 Not Found');die ('请不要直接加载这个页面。谢谢!');};?>
<?php get_header(); ?>
<div class="box boxA">
    <p class="latestNotice"><?php echo saying();?></p>
    <form action="<?php bloginfo('url'); ?>" id="searchform" method="get">
            <input type="text" value="" name="s" class="sKey" autocomplete="off">
            <input type="submit" value="搜索" class="sSubmit">
    </form>
</div>
<div class="box filter">
    <p class="tagfilter" id="tag" <?php if($tag!=''){echo ' data="'.$tag.'"';}?>><b>标签:</b> <?php
    $terms = get_terms("post_tag");
    $count = count($terms);
    if ( $count > 0 ){
    foreach ( $terms as $term ) {
        if($tag==$term->slug){
            echo '<a data="'. $term->slug .'" style="border-color: orange;">' . $term->name . '</a>';
        }else{
            echo '<a data="'. $term->slug .'">' . $term->name . '</a>';
        }
    }
    }
    ?> </p>
    <p class="tagfilter" id="mood"<?php if($mood!=''){echo ' data="'.strtolower(urlencode(urldecode(urldecode($mood)))).'"';}?>><b>心情:</b>
    <?php
    $terms = get_terms("mood");
    $count = count($terms);
    if ( $count > 0 ){
    foreach ( $terms as $term ) {
        if(strtolower(urlencode(urldecode(urldecode($mood))))==$term->slug){
            echo '<a data="'. $term->slug .'" style="border-color: orange;">' . $term->name . '</a>';
        }else{
            echo '<a data="'. $term->slug .'">' . $term->name . '</a>';
        }
    }
    }
    ?></p>
    <p class="tagfilter" id="weather" <?php if($weather!=''){echo ' data="'.strtolower(urlencode(urldecode(urldecode($weather)))).'"';}?>><b>天气:</b> <?php
    $terms = get_terms("weather");
    $count = count($terms);
    if ( $count > 0 ){
    foreach ( $terms as $term ) {
        if(strtolower(urlencode(urldecode(urldecode($weather))))==$term->slug){
            echo '<a data="'. $term->slug .'" style="border-color: orange;">' . $term->name . '</a>';
        }else{
            echo '<a data="'. $term->slug .'">' . $term->name . '</a>';
        }
    }
    }
    ?> </p>
</div>
<div id="indexMain" class="box">
    <div class="posts">
    <?php if (have_posts()) : ?>
    <?php while (have_posts()) : the_post(); ?>
        <div class="post">
        <div class="title">
            <div class="avatar left"><?php echo get_avatar( get_the_author_email()); ?></div>
            <h3><a href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title(); ?>"><?php the_title(); ?></a></h3>
            <div class="meta">
                <span><?php the_author(); ?></span>
                <span><?php the_time('Y.m.d') ?></span>
                <span><?php the_category(' , ') ?></span>
                <span><?php comments_popup_link( "0 条评论", "1 条评论", "% 条评论" );?></span>
                <?php the_tags('<span>标签:',' , ','</span>') ?>
                <?php the_terms( $post->ID,'mood','<span>心情:',' , ','</span>'); ?>
                <?php the_terms( $post->ID,'weather','<span>天气:',' , ','</span>'); ?>
            </div>
        </div>
        <div class="line"></div>
        <?php
        $tmpFirstImage = get_my_firstImage();
        if(!empty($tmpFirstImage)){
            echo '
        <div class="firstImg"><div class="ovh"><img src="'.$tmpFirstImage.'" class="thumb"/></div></div>';
        } ?>
        <div class="content">
        <?php echo mb_strimwidth(strip_tags(apply_filters('the_content', $post->post_content)), 0, 500,"..."); ?>
        </div>
        </div>
    <?php endwhile; ?>
    <?php endif; ?>
    <div class="navigation">
    <div class="pageNavi"><?php par_pagenavi(); ?></div>
    </div>
    </div>
    <?php get_sidebar(); ?>
</div>
<?php if(is_home()){ ?>
<div class="box boxD">
    <div class="clear"><h3 data="linkYq" class="show linkH3">友情链接</h3><h3 data="linkImg" class="linkH3">合作伙伴</h3></div>
    <div class="linkMain">
        <?php the_my_links("合作伙伴","linkImg","","img"); ?>
        <?php the_my_links("友情链接","linkYq","show","text"); ?>
    </div>
</div>
<?php } ?>
<?php get_footer(); ?>

可能要用到的代码三:tag.php代码示范

1
2
<?php if (!defined('AUTH_KEY')){header('HTTP/1.0 404 Not Found');die ('请不要直接加载这个页面。谢谢!');};?>
<?php include("taxonomy.php");

可能要用到的代码四:需要载入的jquery

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
$('.tagfilter a').click(function() {
    var papaDate = $(this).parent('.tagfilter').attr('data');
    $(this).parent('.tagfilter').find('a').css('borderColor', '');
    if(papaDate == undefined | papaDate == "" | papaDate != $(this).attr('data')) {
        $(this).css('borderColor', 'orange').parent('.tagfilter').attr('data', $(this).attr('data'));
    } else if(papaDate == $(this).attr('data')) {
        $(this).css('borderColor', '').parent('.tagfilter').attr('data', '');
    } else {
        $(this).css('borderColor', '').parent('.tagfilter').attr('data', '');
    }
    var urlNow = 'http://' + window.location.host + '/?';
    var url = urlNow;
    var mood = $('#mood').attr('data');
    var weather = $('#weather').attr('data');
    var tag = $('#tag').attr('data');
    if(typeof(mood) != 'undefined') {
        if(mood.length > 0) {
            url += 'mood=' + mood;
        }
    }
    if(typeof(weather) != 'undefined') {
        if(url.substr(-1) != '?') {
            url += '&';
        }
        if(weather.length > 0) {
            url += 'weather=' + weather;
        }
    }
    if(typeof(tag) != 'undefined') {
        if(url.substr(-1) != '?') {
            url += '&';
        }
        if(tag.length > 0) {
            url += 'tag=' + tag;
        }
    }
    if(urlNow != url) {
        window.location.href = url;
    }
})

写在最后

如果你使用本代码及延伸本代码,请在tag.php及taxonomy.php页面合适位置添加一个本站的文字链接,不需要显著,谢谢。

24条回应:“wordpress多tag联动查询代码”

  1. 万豪说道:

    很不错,需要这个功能,我也试试看。

  2. 小旺财说道:

    来过了 互访

  3. 卡丝说道:

    不容易 努力

  4. 最励志网说道:

    不错 学习了!

  5. 歪妖内涵网说道:

    悄悄的路过。

  6. 笑笑说道:

    汪星人对于某项运动,还真是十分的执着呢!来来来,先从牛身上下来好不好……。

  7. 松露说道:

    很详细的代码

  8. 邦林织梦说道:

    js 没效果啊

  9. 邦林织梦说道:

    真是不错可以搜索出来 就是js没效果

发表评论

电子邮件地址不会被公开。 必填项已用*标注

大家都叫我言冬,其实呢,言冬并不叫言冬,言冬今年年方二十有余,且是生得一表人物,虽胜不得宋玉、潘安,也不在两人之下。咳咳,扯远了。。哈哈,大家叫我言冬就好了。o(∩_∩)o

地址:地址我不告诉你
电话:电话呢,也暂时保个密
邮箱:li-yandong@qq.com

T