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.= "\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;
- }
Wordpress主题中常用代码总结的更多相关文章
- wordpress主题制作常用基本的模板及说明
style.css : CSS(样式表)文件,一般包括主题声明和通用css样式代码 index.php : 主页模板,一般用来做网站的首页 header.php : Header模板,一般是所有页面的 ...
- [工作总结]jQuery在工作开发中常用代码片段集锦(1-10)
1.jQuery,JS实现tab切换 原生JS实现 HTML代码如下: <div class="wrap"> <ul id="tag"> ...
- phpcms中常用代码总结
1.调用数据库模型 $this->db = pc_base::load_model('test_model');//从"phpcms/model/"目录下加载模型类文件 其中 ...
- Android 中常用代码片段
一:AsyncTask 的使用 (1)activity_main.xml <TextView android:id="@+id/tvInfo" android:layout_ ...
- LaTeX中常用代码段snippets(持续更新)
1.displaymath 单行数学环境,不带编号. \begin{displaymath} This\ is\ displaymath\ envirment.\ I\ don 't\ have\ a ...
- (转)WordPress常用模板函数 修改或自制WordPress主题必备
对于很多WordPress新手来说,不懂任何代码的情况下去瞎改WordPress主题,得出的效果往往会出现语法错误之类的东西或效果不尽人意.想要修改 WordPress主题模板文件最基本的当然要懂得H ...
- WordPress主题模板层次和常用模板函数
首页: home.php index.php 文章页: single-{post_type}.php – 如果文章类型是videos(即视频),WordPress就会去查找single-videos. ...
- Wordpress 常用代码解释
1. 最新文章 Wordpress最新文章的调用可以使用一行很简单的模板标签 wp_get_archvies来 实现. 代码如下: <?php get_archives('postbypost' ...
- WordPress主题制作导航的N种方法
在WordPress主 题制作中,导航菜单的制作算是一个重点,已经写好导航菜单的HTML代码,放在WordPress主题中如何动态调用呢?本文将给你介绍几种编写PHP代 码动态实现导航的方法,本文也将 ...
随机推荐
- mysql截取字符串
mysql 字符串截取1.从左开始截取字符串left(str,length)被截取字段,截取长度select left('admin1213',5) from table 2.从右开始截取字符串rig ...
- Yii 安装
// 安装 composer curl -s http://getcomposer.org/installer | php // 把 composer 添加到全局命令 mv composer.phar ...
- mvn多模块开发消除重复依赖造成的打包失败
错误信息: [ERROR] Failed to execute goal on project xiaoyiweifu-core: Could not resolve dependencies for ...
- 伪静态(URL重写)
伪静态在可以使用数据库提供更强大的功能的同时,将很长很复杂的链接变成简短的静态链接形式,迎合搜索引擎方便搜索引擎蜘蛛(Spider)来抓取网页上的相关内容,提高页面被搜索引擎索引收录的比率,为用户提供 ...
- HtmlNodeType枚举
HtmlNodeType是一个枚举,用于说明一个节点的类型. 源代码如下所示: public enum HtmlNodeType { Document = 0, Element = 1, Commen ...
- jQuery 序列化表单数据 serialize() serializeArray()
1.serialize()方法 格式:var data = $("form").serialize(); 功能:将表单内容序列化成一个字符串. 这样在ajax提交表单数据时,就不用 ...
- 关于ArcGIS Rest API
ArcGIS Rest API: 9.3版本: http://resources.esri.com/help/9.3/arcgisserver/apis/rest/index.html 10版本:ht ...
- Redhat关闭SELinux和防火墙的办法(转)
Redhat使用了SELinux来增强安全,关闭的办法为:1. 永久有效修改 /etc/selinux/config 文件中的 SELINUX="" 为 disabled ,然后重 ...
- [Oracle] Data Guard 系列(5) - 创建逻辑备库
在创建逻辑备库之前,必须得先创建物理备库,关于如何创建物理备库,请参考<Data Guard 系列(4) - 在不停主库的情况下创建物理备库>. 1. 在物理备库上停止日志应用服务 SYS ...
- Quartz 开源的作业调度框架
Quartz 是一个开源的作业调度框架,它完全由 Java 写成,并设计用于 J2SE 和 J2EE 应用中.它提供了巨大的灵活性而不牺牲简单性.你能够用它来为执行一个作业而创建简单的或复杂的调度.本 ...