今天为大家分享几个WordPress主题开发过程常用功能代码。
WordPress主题开发过程常用功能代码 (https://www.wpzt.net/) WordPress开发教程 第1张
1. 在 wordpress主题中显示最热文章的 PHP代码

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) { ?>

  • ()

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

      $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(); ?>

    • title="Permanent Link to

      ">

    • realate post';} ?>

      3. WordPress主题使用 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;

      ?>

      ID)) : ?>

      4. 最新评论:

      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.= "n

    • ". "ID)."#comment-" .

      $comment->comment_ID ."" title="on

      ".$comment->post_title ."">".strip_tags($comment->comment_author)."" .

      ": ".strip_tags($comment->com_excerpt)."

    • ";

      }

      $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;

      }