织梦dedecms 首页调用wordpress文章列表这个问题在网上找的文章大体做法是这样,用dede:sql标签调用wp博客的数据,也有提议有LOOP标签的。总之,所有的方法都有一个前提,这个前提是wordpress和dede cms安装在同一个数据库中。如果你反复调试没有成功的话看看是否遵循这个前提的.
下面提供几个调用WP数据的源码:
1.##随机调用###
{dede:sql sql=”SELECT * FROM wp_posts order by rand() limit 0,10″}<br>
<a href=’[field:guid/]‘>[field:post_title /]</a>
{/dede:sql}
2.##最新文章调用,草稿一起调出来###
{dede:sql sql=”SELECT * FROM wp_posts order by post_date desc limit 0,10″}<br>
<a href=’[field:guid/]‘>[field:post_title /]</a>
{/dede:sql}
3.###发布了的页面一起调出来###
加上一个 post_status = publish吧
{dede:sql sql=”SELECT * FROM wp_posts where post_status = ‘publish’ order by post_date desc limit 0,10″}<br>
<a href=’[field:guid/]‘>[field:post_title /]</a>
{/dede:sql}
好,让我们就继续我们的测试吧,打开dedecms后台有一个全局标记测试,在里面输入如下代码:
{dede:sql sql=’Select * from wp_posts order by post_date desc limit 0,20′}
<li><a href=’/blog/index.php/[field:id/].html’ target=’_blank’>[field:post_title/]</a></li>
{/dede:sql}
注意如果你的wordpress没有做伪静态的话<a href=’/你的wordpress所在目录/?p=[field:id/]‘这个地方我相信对dedecms熟悉点的朋友都能灵活运用的。点击提交测试,结果出来了,不知道什么原因这个[field:id/]就是得不到数据,也没有心思去仔细研究dedecms的源代码,于是想到它还有一个loop标签可以试一下,于是输入以下代码:
{dede:loop table=’wp_posts’ sort=’post_date’ row=’20′ if=”}<br>
<a href=”/blog/index.php/[field:id/].html”> [field:post_title/]</a> <br/>
{/dede:loop}
同样的结果还是[field:id/]得不到数据,研究了好久还是没有解决,在网上找的文章大体做法是这样,打开wordpress的数据库发现还有一个字段guid记录着url,这下好办了,呵呵
输入以下代码:
{dede:sql sql=’Select * from wp_posts order by post_date desc limit 0,20′}
<li><a href=’[field:guid/]‘ target=’_blank’>[field:post_title/]</a></li>
{/dede:sql}
或者以下代码:
{dede:loop table=’wp_posts’ sort=’post_date’ row=’20′ if=”}<br>
<a href=”[field:guid/]“> [field:post_title/]</a> <br/>
{/dede:loop}
OK,问题解决了,剩下的任务就是到模板里的index.html里增加相应的代码就行了。
这样一来,用guid字段就可以调出来blog文章的地址,但这样出来的是动态的,
可是,这种做法也不太好,对于采用静态化不理想,怎么办,换个做做法,于是又回到第一种方法,想办法吧ID的值调用出来,搞了N次之后,终于有可以完美的解决,小成~_~,采用如下方法:
{dede:sql sql=”Select id as post_id,post_title as post_title,post_type,post_date from wp_posts where post_type = ‘post’ order by post_date desc limit 1,10″}
<a href=’http://www.ni9ht.com/blog/[field:post_id /].html’>[field:post_title /]</a>
{/dede:sql}
只是在筛选的时候,用到了 ID AS POST_id 将ID别名为POST_id,这样就可以了 。
(责任编辑:好模板) |