最模板 - 外贸网站建设,外贸网站模板

最模板

当前位置: 首页 > WordPress > WordPress教程 >

Wordpress主题中常用代码总结

时间:2014-11-07 22:09来源:未知 作者:最模板zuimoban 点击:
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); $po
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.= "\n<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;
}
  
(责任编辑:最模板)
------分隔线----------------------------
栏目列表
推荐内容