搜索
Hi~登录注册
查看: 1217|回复: 0

wordpress中添加相关文章的多种方法详解 -wordpress教程

[复制链接]

1892

主题

1899

帖子

6406

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
6406
发表于 2015-4-20 15:50:24 | 显示全部楼层 |阅读模式

                                <b>[文章目录]</b>
                                <ul id="index-ul">
<li>一:添加文字列表的相关文章</li>
<li>1,添加如下的代码可以调用相关文章(方法一)</li>
<li>2,添加文字列表相关文章(方法二)</li>
<li>二:添加带有缩略图的相关文章</li>
<li>1,在你的functions.php函数中添加如下代码</li>
<li>.2,在你的single.php这个文章模板的代码里相关文章处添加如下代码</li>
</ul>
                        </div>
大家好,同学们好,今天<span style="font-size: 14pt;"><span style="color: #ff0000;"><strong>吾爱互联</strong></span></span>与大家分享关于在wordpress中如何添加多
&nbsp;
种相关文章的功能方法
&nbsp;
我们先来看一看效果图共有两种
&nbsp;
一种是文字列表的相关文章
&nbsp;
一种是带有图片加文字标题的相关文章
&nbsp;
<img class="aligncenter size-full wp-image-789" src="http://www.wpjiaocheng.com/wp-content/uploads/2014/08/19.png" alt="wordpress中添加相关文章的多种方法详解 " width="629" height="332" />
<img class="aligncenter size-full wp-image-790" src="http://www.wpjiaocheng.com/wp-content/uploads/2014/08/24.png" alt="wordpress中添加相关文章的多种方法详解 " width="421" height="209" />
具体的添加方法如下操作:
<h2 id="title-0">一:添加文字列表的相关文章
&nbsp;
<h2 id="title-1">1,添加如下的代码可以调用相关文章(方法一)
<div class="dp-highlighter">
<div class="bar"></div>
<ol class="dp-c" start="1">
<li class="alt"><?php</li>
<li><span class="keyword">global</span> <span class="vars">$post</span>;</li>
<li class="alt"><span class="vars">$cats</span> = wp_get_post_categories(<span class="vars">$post</span>->ID);</li>
<li><span class="keyword">if</span> (<span class="vars">$cats</span>) {</li>
<li class="alt"><span class="vars">$args</span> = <span class="keyword">array</span>(</li>
<li>'category__in' => <span class="keyword">array</span>( <span class="vars">$cats</span>[0] ),</li>
<li class="alt">'post__not_in' => <span class="keyword">array</span>( <span class="vars">$post</span>->ID ),</li>
<li>'showposts' => 6,</li>
<li class="alt">'caller_get_posts' => 1</li>
<li>);</li>
<li class="alt">query_posts(<span class="vars">$args</span>);</li>
<li></li>
<li class="alt"><span class="keyword">if</span> (have_posts()) {</li>
<li><span class="keyword">while</span> (have_posts()) {</li>
<li class="alt">the_post(); update_post_caches(<span class="vars">$posts</span>); ?></li>
<li><li><a href=<span class="string">"<?php the_permalink(); ?>"</span> rel=<span class="string">"bookmark"</span> title=<span class="string">"<?php the_title_attribute(); ?>"</span>><?php the_title(); ?></a><span><?php the_date_xml()?></span></li></li>
<li class="alt"><?php</li>
<li>}</li>
<li class="alt">}</li>
<li><span class="keyword">else</span> {</li>
<li class="alt"><span class="func">echo</span> '<li>暂无相关文章</li>';</li>
<li>}</li>
<li class="alt">wp_reset_query();</li>
<li>}</li>
<li class="alt"><span class="keyword">else</span> {</li>
<li><span class="func">echo</span> '<li>暂无相关文章</li>';</li>
<li class="alt">}</li>
<li>?></li>
</ol>
</div>
<h2 id="title-2">2,添加文字列表相关文章(方法二)
<div class="dp-highlighter">
<div class="bar"></div>
<ol class="dp-c" start="1">
<li class="alt"><h3>相关文章</h3></li>
<li><ul <span class="keyword">class</span>=<span class="string">"related_posts"</span>></li>
<li class="alt"><?php</li>
<li><span class="vars">$post_num</span> = 8;</li>
<li class="alt"><span class="vars">$exclude_id</span> = <span class="vars">$post</span>->ID;</li>
<li><span class="vars">$posttags</span> = get_the_tags(); <span class="vars">$i</span> = 0;</li>
<li class="alt"><span class="keyword">if</span> ( <span class="vars">$posttags</span> ) {</li>
<li><span class="vars">$tags</span> = <span class="string">''</span>; <span class="keyword">foreach</span> ( <span class="vars">$posttags</span> <span class="keyword">as</span> <span class="vars">$tag</span> ) <span class="vars">$tags</span> .= <span class="vars">$tag</span>->term_id . ',';</li>
<li class="alt"><span class="vars">$args</span> = <span class="keyword">array</span>(</li>
<li>'post_status' => 'publish',</li>
<li class="alt">'tag__in' => <span class="func">explode</span>(',', <span class="vars">$tags</span>),</li>
<li>'post__not_in' => <span class="func">explode</span>(',', <span class="vars">$exclude_id</span>),</li>
<li class="alt">'caller_get_posts' => 1,</li>
<li>'orderby' => 'comment_date',</li>
<li class="alt">'posts_per_page' => <span class="vars">$post_num</span>,</li>
<li>);</li>
<li class="alt">query_posts(<span class="vars">$args</span>);</li>
<li><span class="keyword">while</span>( have_posts() ) { the_post(); ?></li>
<li class="alt"><li><a rel=<span class="string">"bookmark"</span> href=<span class="string">"<?php the_permalink(); ?>"</span> title=<span class="string">"<?php the_title(); ?>"</span> target=<span class="string">"_blank"</span>><?php the_title(); ?></a></li></li>
<li><?php</li>
<li class="alt"><span class="vars">$exclude_id</span> .= ',' . <span class="vars">$post</span>->ID; <span class="vars">$i</span> ++;</li>
<li>} wp_reset_query();</li>
<li class="alt">}</li>
<li><span class="keyword">if</span> ( <span class="vars">$i</span> < <span class="vars">$post_num</span> ) {</li>
<li class="alt"><span class="vars">$cats</span> = <span class="string">''</span>; <span class="keyword">foreach</span> ( get_the_category() <span class="keyword">as</span> <span class="vars">$cat</span> ) <span class="vars">$cats</span> .= <span class="vars">$cat</span>->cat_ID . ',';</li>
<li><span class="vars">$args</span> = <span class="keyword">array</span>(</li>
<li class="alt">'category__in' => <span class="func">explode</span>(',', <span class="vars">$cats</span>),</li>
<li>'post__not_in' => <span class="func">explode</span>(',', <span class="vars">$exclude_id</span>),</li>
<li class="alt">'caller_get_posts' => 1,</li>
<li>'orderby' => 'comment_date',</li>
<li class="alt">'posts_per_page' => <span class="vars">$post_num</span> - <span class="vars">$i</span></li>
<li>);</li>
<li class="alt">query_posts(<span class="vars">$args</span>);</li>
<li><span class="keyword">while</span>( have_posts() ) { the_post(); ?></li>
<li class="alt"><li><a rel=<span class="string">"bookmark"</span> href=<span class="string">"<?php the_permalink(); ?>"</span> title=<span class="string">"<?php the_title(); ?>"</span> target=<span class="string">"_blank"</span>><?php the_title(); ?></a></li></li>
<li><?php <span class="vars">$i</span>++;</li>
<li class="alt">} wp_reset_query();</li>
<li>}</li>
<li class="alt"><span class="keyword">if</span> ( <span class="vars">$i</span> == 0 ) <span class="func">echo</span> '<li>没有相关文章!</li>';</li>
<li>?></li>
<li class="alt"></ul></li>
</ol>
</div>
此种方法的样式代码:
<div class="dp-highlighter">
<ol class="dp-c" start="1">
<li class="alt">.related_posts{margin-top:5px;}</li>
<li>.related_posts li{margin-left:20px;color:#444;list-style:circle;font-size:14px;line-height:26px;padding:0 0 0 5px}</li>
</ol>
</div>
<h2 id="title-3">二:添加带有缩略图的相关文章
&nbsp;
<h2 id="title-4">1,在你的functions.php函数中添加如下代码
<div class="dp-highlighter">
<div class="bar"></div>
<ol class="dp-c" start="1">
<li class="alt"><span class="comment">//添加特色缩略图支持</span></li>
<li><span class="keyword">if</span> ( function_exists('add_theme_support') )add_theme_support('post-thumbnails');</li>
<li class="alt"></li>
<li><span class="comment">//输出缩略图地址 From wpjiaocheng.com</span></li>
<li class="alt"><span class="keyword">function</span> post_thumbnail_src(){</li>
<li><span class="keyword">global</span> <span class="vars">$post</span>;</li>
<li class="alt"><span class="keyword">if</span>( <span class="vars">$values</span> = get_post_custom_values(<span class="string">"thumb"</span>) ) { <span class="comment">//输出自定义域图片地址</span></li>
<li><span class="vars">$values</span> = get_post_custom_values(<span class="string">"thumb"</span>);</li>
<li class="alt"><span class="vars">$post_thumbnail_src</span> = <span class="vars">$values</span> [0];</li>
<li>} <span class="keyword">elseif</span>( has_post_thumbnail() ){ <span class="comment">//如果有特色缩略图,则输出缩略图地址</span></li>
<li class="alt"><span class="vars">$thumbnail_src</span> = wp_get_attachment_image_src(get_post_thumbnail_id(<span class="vars">$post</span>->ID),'full');</li>
<li><span class="vars">$post_thumbnail_src</span> = <span class="vars">$thumbnail_src</span> [0];</li>
<li class="alt">} <span class="keyword">else</span> {</li>
<li><span class="vars">$post_thumbnail_src</span> = <span class="string">''</span>;</li>
<li class="alt">ob_start();</li>
<li>ob_end_clean();</li>
<li class="alt"><span class="vars">$output</span> = preg_match_all('/<img.+src=[\'<span class="string">"]([^\'"</span>]+)[\'"].*>/i', <span class="vars">$post</span>->post_content, <span class="vars">$matches</span>);</li>
<li><span class="vars">$post_thumbnail_src</span> = <span class="vars">$matches</span> [1] [0]; <span class="comment">//获取该图片 src</span></li>
<li class="alt"><span class="keyword">if</span>(<span class="keyword">empty</span><span class="func">empty</span>(<span class="vars">$post_thumbnail_src</span>)){ <span class="comment">//如果日志中没有图片,则显示随机图片</span></li>
<li><span class="vars">$random</span> = mt_rand(1, 10);</li>
<li class="alt"><span class="func">echo</span> get_bloginfo('template_url');</li>
<li><span class="func">echo</span> '/images/pic/'.<span class="vars">$random</span>.'.jpg'; <span class="comment">//pic这是个存入图片的文件夹自己可以随意命名一般为random</span></li>
<li class="alt"><span class="comment">//如果日志中没有图片,则显示默认图片</span></li>
<li><span class="comment">//echo '/images/default_thumb.jpg';</span></li>
<li class="alt">}</li>
<li>};</li>
<li class="alt"><span class="func">echo</span> <span class="vars">$post_thumbnail_src</span>;</li>
<li>}</li>
</ol>
</div>
PS:上面的代码主要是获取图片链接,获取的顺序是:
自定义字段为 thumb 的图片>特色缩略图>文章第一张图片>随机图片/默认图片;
随机图片:请制作10张图片,放在现用主题文件夹下的 images/pic/ 目录,图片为jpg格式,并且使用数字 1-10命名,比如 1.jpg;如果你不想用随
机图片,请将 倒数第5行 前面的“//”去掉,然后给 倒数第7、9行 前面添加“//”注销,并且在现用主题的 /images/ 目录下添加一张名字为
default_thumb.jpg 的默认图片,这样,就会显示默认图片
<h2 id="title-5">.2,在你的single.php这个文章模板的代码里相关文章处添加如下代码
<div class="dp-highlighter">
<div class="bar"></div>
<ol class="dp-c" start="1">
<li class="alt"><h3>相关文章</h3></li>
<li><ul <span class="keyword">class</span>=<span class="string">"related_img"</span>></li>
<li class="alt"><?php</li>
<li><span class="vars">$post_num</span> = 4;</li>
<li class="alt"><span class="vars">$exclude_id</span> = <span class="vars">$post</span>->ID;</li>
<li><span class="vars">$posttags</span> = get_the_tags(); <span class="vars">$i</span> = 0;</li>
<li class="alt"><span class="keyword">if</span> ( <span class="vars">$posttags</span> ) {</li>
<li><span class="vars">$tags</span> = <span class="string">''</span>; <span class="keyword">foreach</span> ( <span class="vars">$posttags</span> <span class="keyword">as</span> <span class="vars">$tag</span> ) <span class="vars">$tags</span> .= <span class="vars">$tag</span>->term_id . ',';</li>
<li class="alt"><span class="vars">$args</span> = <span class="keyword">array</span>(</li>
<li>'post_status' => 'publish',</li>
<li class="alt">'tag__in' => <span class="func">explode</span>(',', <span class="vars">$tags</span>),</li>
<li>'post__not_in' => <span class="func">explode</span>(',', <span class="vars">$exclude_id</span>),</li>
<li class="alt">'caller_get_posts' => 1,</li>
<li>'orderby' => 'comment_date',</li>
<li class="alt">'posts_per_page' => <span class="vars">$post_num</span></li>
<li>);</li>
<li class="alt">query_posts(<span class="vars">$args</span>);</li>
<li><span class="keyword">while</span>( have_posts() ) { the_post(); ?></li>
<li class="alt"><li <span class="keyword">class</span>=<span class="string">"related_box"</span> ></li>
<li><div <span class="keyword">class</span>=<span class="string">"r_pic"</span>></li>
<li class="alt"><a href=<span class="string">"<?php the_permalink(); ?>"</span> title=<span class="string">"<?php the_title(); ?>"</span> target=<span class="string">"_blank"</span>></li>
<li><img src=<span class="string">"<?php echo post_thumbnail_src(); ?>"</span> alt=<span class="string">"<?php the_title(); ?>"</span> <span class="keyword">class</span>=<span class="string">"thumbnail"</span> /></li>
<li class="alt"></a></li>
<li></div></li>
<li class="alt"><div <span class="keyword">class</span>=<span class="string">"r_title"</span>><a href=<span class="string">"<?php the_permalink(); ?>"</span> title=<span class="string">"<?php the_title(); ?>"</span> target=<span class="string">"_blank"</span> rel=<span class="string">"bookmark"</span>><?php the_title(); ?></a></div></li>
<li></li></li>
<li class="alt"><?php</li>
<li><span class="vars">$exclude_id</span> .= ',' . <span class="vars">$post</span>->ID; <span class="vars">$i</span> ++;</li>
<li class="alt">} wp_reset_query();</li>
<li>}</li>
<li class="alt"><span class="keyword">if</span> ( <span class="vars">$i</span> < <span class="vars">$post_num</span> ) {</li>
<li><span class="vars">$cats</span> = <span class="string">''</span>; <span class="keyword">foreach</span> ( get_the_category() <span class="keyword">as</span> <span class="vars">$cat</span> ) <span class="vars">$cats</span> .= <span class="vars">$cat</span>->cat_ID . ',';</li>
<li class="alt"><span class="vars">$args</span> = <span class="keyword">array</span>(</li>
<li>'category__in' => <span class="func">explode</span>(',', <span class="vars">$cats</span>),</li>
<li class="alt">'post__not_in' => <span class="func">explode</span>(',', <span class="vars">$exclude_id</span>),</li>
<li>'caller_get_posts' => 1,</li>
<li class="alt">'orderby' => 'comment_date',</li>
<li>'posts_per_page' => <span class="vars">$post_num</span> - <span class="vars">$i</span></li>
<li class="alt">);</li>
<li>query_posts(<span class="vars">$args</span>);</li>
<li class="alt"><span class="keyword">while</span>( have_posts() ) { the_post(); ?></li>
<li><li <span class="keyword">class</span>=<span class="string">"related_box"</span> ></li>
<li class="alt"><div <span class="keyword">class</span>=<span class="string">"r_pic"</span>></li>
<li><a href=<span class="string">"<?php the_permalink(); ?>"</span> title=<span class="string">"<?php the_title(); ?>"</span> target=<span class="string">"_blank"</span>></li>
<li class="alt"><img src=<span class="string">"<?php echo post_thumbnail_src(); ?>"</span> alt=<span class="string">"<?php the_title(); ?>"</span> <span class="keyword">class</span>=<span class="string">"thumbnail"</span> /></li>
<li></a></li>
<li class="alt"></div></li>
<li><div <span class="keyword">class</span>=<span class="string">"r_title"</span>><a href=<span class="string">"<?php the_permalink(); ?>"</span> title=<span class="string">"<?php the_title(); ?>"</span> target=<span class="string">"_blank"</span> rel=<span class="string">"bookmark"</span>><?php the_title(); ?></a></div></li>
<li class="alt"></li></li>
<li><?php <span class="vars">$i</span>++;</li>
<li class="alt">} wp_reset_query();</li>
<li>}</li>
<li class="alt"><span class="keyword">if</span> ( <span class="vars">$i</span> == 0 ) <span class="func">echo</span> '<div <span class="keyword">class</span>=<span class="string">"r_title"</span>>没有相关文章!</div>';</li>
<li>?></li>
<li class="alt"></ul></li>
<li></li>
<li class="alt">下面就是带有图片显示的相关文章样式</li>
<li></li>
<li class="alt">.related_posts{margin-top:5px;}</li>
<li>.related_img{width:600px;height:210px;}</li>
<li class="alt">.related_box{float:left;overflow:hidden;margin-top:5px;width:148px;border-right:1px #eee solid}</li>
<li>.related_box:hover{background:#f9f9f9}</li>
<li class="alt">.related_box .r_title{width:auto;height:72px;font-weight:400;font-size:14px;margin:0 10px;overflow:hidden;}</li>
<li>.related_box .r_pic{margin:6px}</li>
<li class="alt">.related_box .r_pic img{width:130px;height:100px;border:1px solid #e1e1e1;background:#fff;padding:2px}</li>
</ol>
</div>
这样就可以做类似无觅插件带有缩略图的相关文章效果,当然如果不用这种方法也是可以实现的,只要开启特设图像就可以做成,调用缩略图就可以了
当然没有这个方法全面,好了,同学们可以去尝试下吧,希望同学们将这些方法珍藏下来,为以后所用!
公众微信:idc5ahl
公众QQ:吾爱互联
关注公众微信,公众QQ每天领现金卡密
卡密介绍(http://www.5ahl.com/thread-2182-1-1.html
回复

使用道具 举报

游客
回复
您需要登录后才可以回帖 登录 | 点我注册

快速回复 返回顶部 返回列表