WordPRess tiene muchos complementos para implementar funciones de artículos relacionados. La ventaja de los complementos es que son fáciles de configurar, pero pueden tener un pequeño impacto en la velocidad del sitio web, por lo que muchas personas todavía prefieren usar código para lograrlo. las funciones requeridas, pero, de nuevo, la implementación del código también tiene desventajas, es decir, la configuración es complicada y las personas que no entienden el código están completamente confundidas o solo pueden copiar el código de otras personas.
Aquí he recopilado varias formas de usar el código para implementar artículos relacionados. Las funciones de cada parte del código estarán claramente marcadas y cómo personalizar las funciones que desee. cualquier pregunta, puedes publicarla en este artículo. Comenta y te responderé a la brevedad. Antes de comenzar, permítame explicarle que el formato de código HTML generado por todos los métodos siguientes tiene el siguiente formato y puede modificarlo según sea necesario:
<ul id="xxx">
<li>* <a title="Título del artículo 1" rel="bookmark" href="Enlace del artículo 1">Título del artículo 1</a></li>
<li>* <a title="Título del artículo 2" rel="bookmark" href="Enlace del artículo 2">Título del artículo 2</a></li>
...
</ul>
Método 1: relacionado con etiquetas
Primero obtenga todas las etiquetas del artículo y luego obtenga n artículos bajo estas etiquetas, luego estos n artículos son artículos relacionados con el artículo. Todos los complementos de artículos relacionados con WordPress que se pueden ver ahora utilizan este método. Aquí está el código implementado:
<ul id="etiquetas_relacionadas">
<?php
$post_tags = wp_get_post_tags($post->ID);
si ($post_tags) {
foreach ($post_tags como $etiqueta)
{
// Obtener la lista de etiquetas
$lista_etiquetas[] .= $etiqueta->term_id;
}
// Obtener aleatoriamente una etiqueta de la lista de etiquetas
$post_tag = $tag_list[ mt_rand(0, count($tag_list) - 1) ];
// Este método utiliza la función query_posts() para llamar a artículos relacionados. La siguiente es la lista de parámetros.
$argumentos = matriz(
'tag__in' => matriz($post_tag),
'category__not_in' => array(NULL), // ID de categoría no incluida
'post__not_in' => matriz($post->ID),
'showposts' => 6, // Muestra el número de artículos relacionados
'caller_get_posts' => 1
);
query_posts($args);
si (have_posts()) :
mientras (have_posts()): the_post(); update_post_caches($publicaciones?>
<li>* <a href="<?php the_permalink(); ?>" rel="bookmark" title="<?php the_title_attribute(); ?>"><?php the_title(); >>li>
<?php finaliza; si no: ?>
<li>* Aún no hay artículos relacionados</li>
<?php endif;wp_reset_query();
</ul>
Instrucciones de uso: "ID de categoría excluida" significa que los artículos relacionados no muestran artículos en esta categoría. Simplemente cambie NULL en la misma fila por el ID de la categoría del artículo. Utilice comas de medio ancho para separar varios ID. Debido a que aquí solo se muestran 6 artículos relacionados, no importa cuántos valores se asignen al parámetro tag__in de query_posts(), solo se mostrarán 6 artículos bajo una etiqueta, a menos que la primera etiqueta tenga 1 artículo y la segunda etiqueta tiene 2 artículos y el tercero tiene 3 artículos. . . . . . Entonces, si este artículo tiene varias etiquetas, entonces lo que hacemos es obtener aleatoriamente la identificación de una etiqueta, asignarla al parámetro tag__in y obtener los 6 artículos debajo de la etiqueta.
Método 2: clasificación relacionada
Este método logra el propósito de obtener artículos relacionados obteniendo la identificación de categoría del artículo y luego obteniendo los artículos bajo esta categoría.
<ul id="gato_relacionado">
<?php
$gatos = wp_get_post_categories($post->ID);
si ($gatos) {
$gato = get_category( $gatos[0] );
$primer_gato = $gato->gato_ID;
$argumentos = matriz(
'categoría__in' => matriz ($first_cat),
'post__not_in' => matriz($post->ID),
'publicaciones de exhibición' => 6,
'caller_get_posts' => 1);
query_posts($args);
si (have_posts()) :
mientras (have_posts()): the_post(); update_post_caches($publicaciones?>
<li>* <a href="<?php the_permalink(); ?>" rel="bookmark" title="<?php the_title_attribute();
?>"><?php the_title(); ?></a></li>
<?php finaliza; si no: ?>
<li>* Aún no hay artículos relacionados</li>
<?php endif;wp_reset_query();
</ul>
Método 3: relacionado con etiquetas, adquisición de SQL
El principio de obtener artículos relacionados es similar al método 1, pero al obtener artículos, se utilizan declaraciones SQL para leer directamente la base de datos, obteniendo así aleatoriamente 6 registros de artículos relacionados, en lugar de la función query_posts () de WordPress.
<ul id="etiquetas_relacionadas">
<?php
$post_tags = wp_get_post_tags($post->ID);
si ($post_tags) {
foreach ($post_tags como $etiqueta)
{
// Obtener la lista de etiquetas
$lista_etiquetas[] .= $etiqueta->term_id;
}
// Obtener aleatoriamente una etiqueta de la lista de etiquetas
$post_tag = $tag_list[ mt_rand(0, count($tag_list) - 1) ];
$relacionado = $wpdb->get_results("
SELECCIONE {$wpdb->prefix}posts.post_title, {$wpdb->prefix}posts.guid
DE publicaciones de {$wpdb->prefix}, {$wpdb->prefix}term_relationships, {$wpdb->prefix}term_taxonomy
DONDE {$wpdb->prefix}posts.ID = {$wpdb->prefix}term_relationships.object_id
Y {$wpdb->prefix}term_taxonomy.taxonomy = 'post_tag'
Y {$wpdb->prefix}term_taxonomy.term_taxonomy_id = {$wpdb->prefix}
term_relaciones.term_taxonomy_id
Y {$wpdb->prefix}posts.post_status = 'publicar'
Y {$wpdb->prefix}posts.post_type = 'publicación'
Y {$wpdb->prefix}term_taxonomy.term_id = '". $post_tag. "'
Y {$wpdb->prefix}posts.ID != '" . $post->ID . "'
ORDEN POR RAND( )
LÍMITE 6");
// El 6 en el código anterior es para limitar la adquisición de solo 6 artículos relacionados.
// Modificando el número 6, puedes modificar el número de artículos que deseas
si ($ relacionado) {
foreach ($relacionado como $relacionado_post) {
?>
<li>* <a href="<?php echo $ related_post->guid; ?>" rel="marcador"
title="<?php echo $relacionado_post->post_title; ?>"><?php echo $relacionado_post->post_title ?></a></li>
<?php } } más { ?>
<li>* Aún no hay artículos relacionados</li>
<?php } }?>
</ul>
Método 4: clasificación relacionada, adquisición de SQL
El principio de obtener artículos relacionados es similar al método 2, pero al obtener artículos, se utilizan declaraciones SQL para leer directamente la base de datos, obteniendo así aleatoriamente 6 registros de artículos relacionados, en lugar de la función query_posts () de WordPress.
<ul id="gato_relacionado">
<?php
$gatos = wp_get_post_categories($post->ID);
si ($gatos) {
$gato = get_category( $gatos[0] );
$primer_gato = $gato->gato_ID;
$relacionado = $wpdb->get_results("
SELECCIONE wp_posts.post_title, wp_posts.guid
DE wp_posts, wp_term_relationships, wp_term_taxonomy
DONDE wp_posts.ID = wp_term_relationships.object_id
Y {$wpdb->prefix}term_taxonomy.taxonomy = 'categoría'
Y {$wpdb->prefix}term_taxonomy.term_taxonomy_id = {$wpdb->prefix}term_relationships.term_taxonomy_id
Y {$wpdb->prefix}posts.post_status = 'publicar'
Y {$wpdb->prefix}posts.post_type = 'publicación'
Y {$wpdb->prefix}term_taxonomy.term_id = '" . $first_cat . "'
Y {$wpdb->prefix}posts.ID != '" . $post->ID . "'
ORDEN POR RAND( )
LÍMITE 6");
si ($ relacionado) {
foreach ($relacionado como $relacionado_post) {
?>
<li>* <a href="<?php echo $ related_post->guid; ?>" rel="marcador"
title="<?php echo $relacionado_post->post_title; ?>"><?php echo $relacionado_post->post_title ?></a></li>
<?php } } más { ?>
<li>* Aún no hay artículos relacionados</li>
<?php } }?>
</ul>
Método 5: relacionado con el autor
Este método consiste en obtener otros artículos del autor de este artículo para que sirvan como artículos relacionados. El código es el siguiente:
<ul id="autor_relacionado">
<?php
$post_author = get_the_author_meta( 'usuario_login' );
$argumentos = matriz(
'nombre_autor' => $post_autor,
'post__not_in' => matriz($post->ID),
'showposts' => 6, // Muestra el número de artículos relacionados
'ordenar por' => fecha, // Ordenar por hora
'caller_get_posts' => 1
);
query_posts($args);
si (have_posts()) :
mientras (have_posts()): the_post(); update_post_caches($publicaciones?>
<li>* <a href="<?php the_permalink(); ?>" rel="marcador"
título="<?php el_título_atributo(); ?>"><?php el_título() ?></a></li>
<?php finaliza; si no: ?>
<li>* Aún no hay artículos relacionados</li>
<?php endif;wp_reset_query();
</ul>
Comparación de eficiencia de tiempo
Usaremos un código PHP previo para medir el tiempo de ejecución del código de cada uno de los artículos relacionados anteriores para evaluar la eficiencia de cada uno de los métodos anteriores y proporcionar una referencia para su elección. Lo siguiente es obtener 6 artículos relacionados en el mismo artículo. El tiempo de cálculo final de cada método anterior es el siguiente:
Método 1: 0,18067908287048 segundos
Método 2: 0,057158946990967 segundos
Método tres: 0,037126064300537 segundos
Método 4: 0,045628070831299 segundos
Método cinco: 0,023991823196411 segundos
Texto original: http://www.ludou.org/how-to-generate- related- posts-in-wordpress.html