给你个参考文章 用函数实现吧
<php
// 得到所有分类列表
$categories = get_categories();
// 循环所有分类
foreach ($categories as $cat) {
// 得到分类ID
$catid = $cat->cat_ID;
// 得到分类下10篇最新文��
query_posts(“showposts=10&cat=$catid”); >
这两篇文章一定能帮你解决这个问题
>
我对数据库不会。
但是你不如直接说你想要什么样的结果吧。
如果是做页面,你为什么要 *** 作数据库。直接写一个就行了。我说的是模版。然后你可以让不同的页面使用不同的模版,而页面的内容你也可以自由控制。
#1,若您的WordPress版本为23及以前,可采用如下方法令系统自动缓存内部调用函数,而完全不用担心缓存对系统交互性的影响(如延迟等)。
Step1:在WordPress安装目录下的wp-content文件夹下创建名为cache的目录,属性设置为755,如下图:
Step2:打开WordPress安装根目录下的wp-configphp文件,在其尾端加入define('ENABLE_CACHE', true);,如下图:
保存后上传更新文件,刷新页面后,可发现新创建的cache文件夹中生成了如下文件:
缓存的是一些不需要经常修改的文件,如分类名称、存档日期等。该缓存方法名为object缓存,并不缓存网页,而传统的wp-cache调用是缓存网页的,会影响网页的交互实时性,使用户体验些许变差。
#2,若您的WordPress版本为25及以上版本,由于新版WP取消了object缓存功能可以使用将所有待查数据都存入数据库options表(一般的默认名称为wp_options)的方法,大幅度减少数据库查询次数。ThinkAgain的解释如下:
默认WP有10个数据表,wp_posts和comments主要存储文章内容和评论,
其它的几个包括term等存储了目录和标签等等。这里不细谈。wp_options用来存储Wordpress以及插件运行时所涉及的配置等。且WP会在
运行时自动读取该表的内容。换句话说,因为WP已经预读这部分内容,所以直接调用wp_options内的数据是不会产生数据库查询的。(>
方法一:文章根据标签相关(用SQL获取)
相关原理:首先获取改篇文章的所有标签,接着获取这些标签下的 n 篇文章,那么这 n 篇文章就是与该文章相关的文章了。现在可以见到的WordPress相关文章插件都是使用的这个方法。这里我们通过SQL语句来直接读取数据库,随机获取 10篇相关的文章记录。下面是实现的代码:
<h3>该文章的相关文章</h3>
<ul>
<php
$all_tags = wp_get_post_tags($post->ID);
if ($all_tags) {
$tag_list = '';
foreach ($all_tags as $tag)
{
// 获取标签列表
$tag_list = $tag->term_id',';
}
$tag_list = substr($tag_list, 0, strlen($tag_list)-1);
$related_posts = $wpdb->get_results("
SELECT post_title, ID
FROM {$wpdb->prefix}posts, {$wpdb->prefix}term_relationships, {$wpdb->prefix}term_taxonomy
WHERE {$wpdb->prefix}term_taxonomyterm_taxonomy_id = {$wpdb->prefix}term_relationshipsterm_taxonomy_id
AND ID = object_id
AND taxonomy = 'post_tag'
AND post_status = 'publish'
AND post_type = 'post'
AND term_id IN (" $tag_list ")
AND ID != '" $post->ID "'
ORDER BY RAND()
LIMIT 10");
// 以上代码中的 10 为限制只获取10篇相关文章
// 通过修改数字 10,可修改你想要的文章数量
if ( $related_posts ) {
foreach ($related_posts as $related_post) {
>
<li><a href="<php echo get_permalink($related_post->ID); >" rel="bookmark" title="<php echo $related_post->post_title; >">
<php echo $related_post->post_title; ></a></li>
<php } } else { >
<li>暂无相关文章</li>
<php } } >
</ul>
方法二:根据文章的分类获取相关文章
本方法是通过获取该文章的分类id,然后获取该分类下的文章,来达到获取相关文章的目的。我们用SQL语句来直接读取数据库,随机获取10篇相关文章记录。下面是实现的代码:
<h3>相关阅读推荐</h3>
<ul>
<php
$data = wp_get_post_categories($post->ID);
if ($data) {
$related = $wpdb->get_results("
SELECT post_title, ID
FROM {$wpdb->prefix}posts, {$wpdb->prefix}term_relationships, {$wpdb->prefix}term_taxonomy
WHERE {$wpdb->prefix}postsID = {$wpdb->prefix}term_relationshipsobject_id
AND {$wpdb->prefix}term_taxonomytaxonomy = 'category'
AND {$wpdb->prefix}term_taxonomyterm_taxonomy_id = {$wpdb->prefix}term_relationshipsterm_taxonomy_id
AND {$wpdb->prefix}postspost_status = 'publish'
AND {$wpdb->prefix}postspost_type = 'post'
AND {$wpdb->prefix}term_taxonomyterm_id = '" $data[0] "'
AND {$wpdb->prefix}postsID != '" $post->ID "'
ORDER BY RAND()
LIMIT 10");
if ( $related ) {
foreach ($related as $related_post) {
>
<li><a href="<php echo get_permalink($related_post->ID); >" rel="bookmark" title="<php echo $related_post->post_title; >">
<php echo $related_post->post_title; ></a></li>
<php } } else { >
<li>暂无相关文章</li>
<php } }>
</ul>
方法三:根据作者相关获取文章(这个比较少用,因为基本都是我们自己发的)
该方法是获取该文章作者的其他文章来充当相关文章,代码如下:
<h3>该作者的相关文章</h3>
<ul>
<php
$post_author = get_the_author_meta( 'user_login' );
$args = array(
'author_name' => $post_author,
'post__not_in' => array($post->ID),
'showposts' => 10, // 显示相关文章数量
'orderby' => date, // 按时间排序
'caller_get_posts' => 1
);
query_posts($args);
if (have_posts()) :
while (have_posts()) : the_post(); update_post_caches($posts); >
<li><a href="<php the_permalink(); >" rel="bookmark" title="<php the_title_attribute(); >"><php the_title(); ></a></li>
<php endwhile; else : >
<li>暂无相关文章</li>
<php endif; wp_reset_query(); >
</ul>
以上就是关于wordpress自制主题,页面中如何获取数据库数据,求解,我要代码,谢谢啊!全部的内容,包括:wordpress自制主题,页面中如何获取数据库数据,求解,我要代码,谢谢啊!、wordpress导入数据库,文章分类对不上、 *** 作wordpress数据库中的数据等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)