


How does WordPress implement related article functions? Several ways to share
How does WordPress implement the related article function? The following article will introduce to you several ways to implement related articles in WordPress code. I hope it will be helpful to you!
Many WordPress plug-ins can realize the functions of related articles. The advantage of plug-ins is that they are simple to configure, but they may have some small impact on the speed of the website, so many people still prefer I like to use code to implement the required functions, but then again, code implementation also has shortcomings, that is, the configuration is complicated, and people who don’t understand code are completely confused or can only copy other people’s code, so it is better to use plug-ins.
Here I have compiled several ways to use code to implement related articles. The functions of each part of the code will be detailed and how to customize the functions you want. I hope it will be useful to everyone. help. Before we start, let me explain that the HTML code format output by all the following methods is in the following form. You can modify it according to your needs:
<ul id="xxx"> <li>* <a title="文章标题1" rel="bookmark" href="文章链接1">文章标题1</a></li> <li>* <a title="文章标题2" rel="bookmark" href="文章链接2">文章标题2</a></li> ...... </ul>
Method 1: Tag related
First get all the tags of the article, and then get n articles under these tags, then these n articles are articles related to the article. All WordPress related article plug-ins that can be seen now use this method. The following is the implemented code:
<ul id="tags_related"> <?php global $post; $post_tags = wp_get_post_tags($post->ID); if ($post_tags) { foreach ($post_tags as $tag) { // 获取标签列表 $tag_list[] .= $tag->term_id; } // 随机获取标签列表中的一个标签 $post_tag = $tag_list[ mt_rand(0, count($tag_list) - 1) ]; // 该方法使用 query_posts() 函数来调用相关文章,以下是参数列表 $args = array( 'tag__in' => array($post_tag), 'category__not_in' => array(NULL), // 不包括的分类ID 'post__not_in' => array($post->ID), 'showposts' => 6, // 显示相关文章数量 '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 } } else { echo '<li>* 暂无相关文章</li>'; } wp_reset_query(); } else { echo '<li>* 暂无相关文章</li>'; } ?> </ul>
Instructions for use: "Category ID not included" refers to related articles that do not display articles under this category. Just change the NULL in the peer to the ID of the article category. More The IDs are separated by half-width commas. Because only 6 related articles are displayed here, no matter how many values are assigned to the parameter tag__in of query_posts(), only 6 articles under one tag will be displayed, unless the first tag has 1 article and the second tag has 2 articles, and the third one has 3 articles. . . . . . So if this article has multiple tags, then what we do is to randomly get the id of a tag, assign it to the tag__in parameter, and get the 6 articles under that tag.
Method 2: Classification related
This method achieves the purpose of obtaining related articles by obtaining the classification id of the article, and then obtaining the articles under this category.
<ul id="cat_related"><?phpglobal $post;$cats = wp_get_post_categories($post->ID);if ($cats) { $args = array( 'category__in' => array( $cats[0] ), 'post__not_in' => array( $post->ID ), 'showposts' => 6, '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 } } else { echo '<li>* 暂无相关文章</li>'; } wp_reset_query(); }else { echo '<li>* 暂无相关文章</li>';}?></ul>
Method three: Tag related, SQL acquisition
The principle of obtaining related articles is similar to method one, but when obtaining articles, Use SQL statements to directly read the database, thereby randomly obtaining 6 related article records, instead of the WordPress function query_posts().
<ul id="tags_related"><?phpglobal $post, $wpdb;$post_tags = wp_get_post_tags($post->ID);if ($post_tags) { $tag_list = ''; foreach ($post_tags as $tag) { // 获取标签列表 $tag_list .= $tag->term_id.','; } $tag_list = substr($tag_list, 0, strlen($tag_list)-1); $related_posts = $wpdb->get_results(" SELECT DISTINCT ID, post_title FROM {$wpdb->prefix}posts, {$wpdb->prefix}term_relationships, {$wpdb->prefix}term_taxonomy WHERE {$wpdb->prefix}term_taxonomy.term_taxonomy_id = {$wpdb->prefix}term_relationships.term_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 6"); // 以上代码中的 6 为限制只获取6篇相关文章 // 通过修改数字 6,可修改你想要的文章数量 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 { echo '<li>暂无相关文章</li>'; } }else { echo '<li>暂无相关文章</li>';}?></ul>
Method 4: Classification related, SQL Get
The principle of getting related articles is similar to method two, but when getting articles, SQL statements are used to directly read the database, thereby randomly obtaining 6 related article records, instead of using WordPress functions. query_posts().
<ul id="cat_related"><?phpglobal $post, $wpdb;$cats = wp_get_post_categories($post->ID);if ($cats) { $related = $wpdb->get_results(" SELECT post_title, ID FROM {$wpdb->prefix}posts, {$wpdb->prefix}term_relationships, {$wpdb->prefix}term_taxonomy WHERE {$wpdb->prefix}posts.ID = {$wpdb->prefix}term_relationships.object_id AND {$wpdb->prefix}term_taxonomy.taxonomy = 'category' AND {$wpdb->prefix}term_taxonomy.term_taxonomy_id = {$wpdb->prefix}term_relationships.term_taxonomy_id AND {$wpdb->prefix}posts.post_status = 'publish' AND {$wpdb->prefix}posts.post_type = 'post' AND {$wpdb->prefix}term_taxonomy.term_id = '" . $cats[0] . "' AND {$wpdb->prefix}posts.ID != '" . $post->ID . "' ORDER BY RAND( ) LIMIT 6"); 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 { echo '<li>* 暂无相关文章</li>'; } }else { echo '<li>* 暂无相关文章</li>';}?></ul>
Method 5: Author related
This method is to obtain other articles of the author of the article to serve as related articles, code As follows:
<ul id="author_related"><?php global $post; $post_author = get_the_author_meta( 'user_login' ); $args = array( 'author_name' => $post_author, 'post__not_in' => array($post->ID), 'showposts' => 6, // 显示相关文章数量 '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 } } else { echo '<li>* 暂无相关文章</li>'; } wp_reset_query();?></ul>
Time efficiency comparison
We measure the code execution time of each of the above related articles in order to evaluate the efficiency of each of the above methods. , provide reference for your choice. The following is to obtain 6 related articles in the same article. The final calculation time of each method above is as follows:
Method one: 0.18067908287048 seconds
Method two: 0.057158946990967 seconds
Method three: 0.037126064300537 seconds
Method 4: 0.045628070831299 seconds
Method 5: 0.023991823196411 seconds
Recommended study: "WordPress Tutorial"
The above is the detailed content of How does WordPress implement related article functions? Several ways to share. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

There are four ways to adjust the WordPress article list: use theme options, use plugins (such as Post Types Order, WP Post List, Boxy Stuff), use code (add settings in the functions.php file), or modify the WordPress database directly.

To build a website using WordPress hosting, you need to: select a reliable hosting provider. Buy a domain name. Set up a WordPress hosting account. Select a topic. Add pages and articles. Install the plug-in. Customize your website. Publish your website.

IIS and PHP are compatible and are implemented through FastCGI. 1.IIS forwards the .php file request to the FastCGI module through the configuration file. 2. The FastCGI module starts the PHP process to process requests to improve performance and stability. 3. In actual applications, you need to pay attention to configuration details, error debugging and performance optimization.

WordPress editing dates can be canceled in three ways: 1. Install the Enable Post Date Disable plug-in; 2. Add code in the functions.php file; 3. Manually edit the post_modified column in the wp_posts table.

A step-by-step guide to replacing a header image of WordPress: Log in to the WordPress dashboard and navigate to Appearance >Theme. Select the topic you want to edit and click Customize. Open the Theme Options panel and look for the Site Header or Header Image options. Click the Select Image button and upload a new head image. Crop the image and click Save and Crop. Click the Save and Publish button to update the changes.

The steps to create a custom header in WordPress are as follows: Edit the theme file "header.php". Add your website name and description. Create a navigation menu. Add a search bar. Save changes and view your custom header.

WordPress Error Resolution Guide: 500 Internal Server Error: Disable the plug-in or check the server error log. 404 Page not found: Check permalink and make sure the page link is correct. White Screen of Death: Increase the server PHP memory limit. Database connection error: Check the database server status and WordPress configuration. Other tips: enable debug mode, check error logs, and seek support. Prevent errors: regularly update WordPress, install only necessary plugins, regularly back up your website, and optimize website performance.

Enable comments in WordPress website: 1. Log in to the admin panel, go to "Settings" - "Discussions", and check "Allow comments"; 2. Select a location to display comments; 3. Customize comments; 4. Manage comments, approve, reject or delete; 5. Use <?php comments_template(); ?> tags to display comments; 6. Enable nested comments; 7. Adjust comment shape; 8. Use plugins and verification codes to prevent spam comments; 9. Encourage users to use Gravatar avatar; 10. Create comments to refer to
