zoukankan      html  css  js  c++  java
  • Wordpress主题中常用代码总结

    1. 在 Wordpress主题中显示最热文章的 PHP代码

    <?php $result = $wpdb->get_results("SELECT comment_count,ID,post_title FROM 
      $wpdb->posts ORDER BY comment_count DESC LIMIT 0 , 10"); 
      foreach ($result as $post) { 
        setup_postdata($post); 
        $postid = $post->ID; 
        $title = $post->post_title; 
        $commentcount = $post->comment_count; 
        if ($commentcount != 0) { ?> 
          <li><a href="<?php echo get_permalink($postid); ?>" title="<?php echo $title ?>"> 
      <?php echo $title ?></a> (<?php echo $commentcount ?>)</li> 
    <?php } } ?> 
    

    2. wordpress主题–相关文章代码

    <div id="newpost"> 
     <ul> 
     <?php 
     $tags = wp_get_post_tags($post->ID); 
     if ($tags) { 
     $first_tag = $tags[0]->term_id; 
     $args=array( 
     'tag__in' => array($first_tag), 
     'post__not_in' => array($post->ID), 
     'showposts'=>10, 
     'caller_get_posts'=>1 
     ); 
     $my_query = new WP_Query($args); 
     if( $my_query->have_posts() ) { 
     while ($my_query->have_posts()) : $my_query->the_post(); ?> 
     <li><a href="<?php the_permalink() ?>" rel="bookmark" 
    title="Permanent Link to 
     <?php the_title_attribute(); ?>"><?php the_title(); ?> 
     </a> </li> 
     <?php endwhile; } else {echo 'not realate post';} }else {echo 'not 
    realate post';} ?>
    

    3. Wordpress主题使用 PHP代码输出最新文章

    <?php 
    $limit = get_option('posts_per_page'); 
    $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; 
    query_posts('showposts=' . $limit=7 . '&paged=' . $paged); 
    $wp_query->is_archive = true; $wp_query->is_home = false; 
    ?> 
    <?php while(have_posts()) : the_post(); if(!($first_post == $post->ID)) : ?> 
    <ul> 
    <li><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to 
    <?php the_title_attribute(); ?>"><?php the_title(); ?></a></li> 
    </ul> 
    <?php endif; endwhile; ?>
    

    4. 最新评论:

    <?php 
    global $wpdb; 
    $sql= "SELECT DISTINCT ID, post_title, post_password, 
    comment_ID,comment_post_ID, comment_author, comment_date_gmt, 
    comment_approved,comment_type,comment_author_url, 
    SUBSTRING(comment_content,1,30) AScom_excerpt FROM $wpdb->comments LEFT OUTER 
    JOIN $wpdb->posts ON($wpdb->comments.comment_post_ID = $wpdb->posts.ID) 
    WHEREcomment_approved = '1' AND comment_type = " AND post_password = " ORDERBY 
    comment_date_gmt DESC LIMIT 10"; 
    $comments = $wpdb->get_results($sql); 
    $output = $pre_HTML; 
    foreach ($comments as $comment) { 
    $output.= "
    <li>". "<a href="" .get_permalink($comment->ID)."#comment-" . 
    $comment->comment_ID ."" title="on 
    ".$comment->post_title ."">".strip_tags($comment->comment_author)."</a>" .
    ": ".strip_tags($comment->com_excerpt)."</li>"; 
    } 
    $output .= $post_HTML; 
    echo $output; 
    ?>
    

    5. wordpress主题–相关文章代码

    基本sql是这样:$sql = “SELECT p.ID, p.post_title, p.post_date, p.comment_count,
    count(t_r.object_id) as cnt FROM $wpdb->term_taxonomy t_t, $wpdb->term_relationships
    t_r, $wpdb->posts p WHERE t_t.taxonomy =’post_tag’ AND t_t.term_taxonomy_id =
    t_r.term_taxonomy_id AND t_r.object_id = p.ID AND (t_t.term_id IN ($taglist)) AND
    p.ID != $post->ID AND p.post_status = ‘publish’ GROUP BY t_r.object_id ORDER BY cnt
    DESC, p.post_date_gmt DESC LIMIT $limit;”;
    一点一点的解释:term_taxonomy 、term_relationship、posts这三张表存的什么我不多说,网上一般都可以查到,维基百科貌似都有。把他们连起来,做个 sql,注意 group by以及limit,这样就可以提取结果了$related_post = $wpdb->get_results($sql);
    之前要把$taglist 做好,利用wp_get_post_tags($post->ID);可以将该篇文章的的 tag 取到一个数组中,然后再链接就可以了 最后怎么处理输出就看个人爱好了,这个功能我写的大概也就十几行,我比较喜欢简短的说,呵呵。

    function related_post($limit = 10) { 
    global $wpdb, $post; 
    $tags = wp_get_post_tags($post->ID); 
    $taglist = "'" . $tags[0]->term_id. “‘”; 
    $tagcount = count($tags); 
    if ($tagcount > 1) { 
    for ($i = 1; $i < $tagcount; $i++) { 
    $taglist .= “, ‘”.$tags[$i]->term_id.”‘”; 
    } 
    } 
    $sql = “SELECT p.ID, p.post_title, p.post_date, p.comment_count, count(t_r.object_id) as cnt 
    FROM $wpdb->term_taxonomy t_t, $wpdb->term_relationships t_r, $wpdb->posts p WHERE 
    t_t.taxonomy =’post_tag’ AND t_t.term_taxonomy_id = t_r.term_taxonomy_id AND t_r.object_id = 
    p.ID AND (t_t.term_id IN ($taglist)) AND p.ID != $post->ID AND p.post_status = ‘publish’ GROUP 
    BY t_r.object_id ORDER BY cnt DESC, p.post_date_gmt DESC LIMIT $limit;”; 
    $related_post = $wpdb->get_results($sql); 
    $output = “”; 
    foreach ($related_post as $tmp){ 
    $output .= 这个就看个人爱好了 
    } 
    if($output == “”)$output = “No Related Post Yet”; 
    echo $output; 
    }
    

      

  • 相关阅读:
    PHP中each与list用法分析
    三大范式通俗讲解
    数据库三大范式详解
    利用JS制作简便计算器
    CSS下拉列表错误纠正
    下拉列表
    CSS选择器、标签,div的位置。
    php注册审核
    php分页查询
    php投票练习
  • 原文地址:https://www.cnblogs.com/qiandu/p/4034858.html
Copyright © 2011-2022 走看看