✅ Noticias, temas, complementos de WEB y WordPress. Aquí compartimos consejos y las mejores soluciones para sitios web.

Agregue una próxima publicación aleatoria en la plantilla de página de WordPress usando SQL

10

A menudo puede obtener consejos sobre cómo mejorar el SEO (optimización de motores de búsqueda) agregando enlaces a sus publicaciones anteriores cuando publica una nueva publicación. Esto ayuda a aumentar el tráfico y funciona de manera similar a los complementos como ‘Publicaciones relativas’ pero solo que más simple.

Todas las publicaciones de wordpress se almacenan en la tabla, por ejemplo, wp_posts y dentro de esta tabla, encontrará post_title, post_name y estas columnas son bastante sencillas. Dependiendo de las configuraciones de las URL de su publicación, puede tener varios formatos de enlaces permanentes que se pueden configurar en la sección Configuración – Enlace permanente.

El siguiente código PHP se puede insertar en la plantilla de su página, normalmente single.php que es la plantilla de publicación única o page.php para la plantilla de página.

Cambie wp_posts en consecuencia, ya que esto puede variar un poco. La consulta SQL devuelve una publicación aleatoria donde excluye las páginas, o elementos de menú, enlaces, etc. Y el estado de la publicación debe publicarse, lo que excluye el borrador. El límite 1 devuelve solo 1 publicación. Entonces, si desea una publicación anterior, podría considerar cambiar esto para limitar 2.

El enlace permanente en mi sitio se basa en post_name, que es más compatible con SEO. Bien podrías personalizar esto. La consulta SQL también se puede personalizar. Por ejemplo, es posible que desee devolver publicaciones relevantes en lugar de publicaciones aleatorias haciendo coincidir el titlevalor según el título de la publicación actual. O realmente desea devolver su publicación anterior o siguiente ordenada por fecha de publicación, es posible que desee utilizar el campo ‘post_id’.

Comentarios

Yu: “Genial, el azar es realmente bueno. También es mejor asegurarse de que el aleatorio esté relacionado con la publicación actual. Pero esto no suele ser un gran problema siempre que el blog sea para un solo género.

Además, el orden por RAND() funciona bien para miles de registros. (suele ser el caso de un blog normal). Pero quemará su base de datos si tiene millones de registros en la misma tabla que coinciden con los criterios de búsqueda".

Sí, el orden SQL por rand() es un poco complicado y lento. Necesita recuperar todos los registros y ordenarlos aleatoriamente. Se considera de baja eficiencia cuando el tamaño de la mesa es mediano o grande. Es posible que desee utilizar el siguiente truco para obtener un registro aleatorio de una manera más rápida empleando la función rand() en PHP.

// get total number of records $query = "select count(1) from `table`"; $result = mysql_query($query) or die(mysql_error()); $total = mysql_result($result, 0, 0); // get a random $r = rand(0, $total - 1); // return a number between 0 and $total - 1 inclusive using PHP $query = "select * from `table` limit $r, 1"; $result = mysql_query($query) or die(mysql_error());

Las causas de límite de SQL especifican el desplazamiento y el segundo parámetro especifica la cantidad de registros que se deben obtener.

Mejor registro aleatorio

De acuerdo con lo anterior, el orden por rand() es extremadamente ineficiente si tiene una tabla muy grande porque para la clasificación (incluso si solo desea un elemento), se invocará la función rand() y eso es lo que no hacemos. desear. Podemos mejorar lo anterior usando dos consultas, la primera devuelve el número total de publicaciones, y tenemos una función aleatoria de PHP y obtenemos el registro aleatorio usando la declaración de límite.

Fuente de grabación: helloacm.com

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More