Pregunta sobre Developing with WordPress de Wordpress:

Expresión PHP para filtrar por contenido

Un usuario preguntó 👇

Hola a todos, soy nuevo aquí, pero me encanta lo que veo. Estoy buscando ayuda u orientación sobre php y modismos.

Estoy creando un plugin para mi clase de wordpress que está diseñado para escanear un sitio web y devolver elementos específicos creados / incluidos por el usuario a sus páginas, publicaciones y medios.

Esta podría ser una etiqueta h2 para encabezados de página y un título de imagen e información de etiqueta de artículo. Sé que esto está un poco abierto, pero estoy buscando alguna dirección, ya que no estoy seguro de si esta es la dirección que debo tomar para lograr mi objetivo de plugin.

Gracias y espero que alguien tenga alguna idea. 🙂

(@lakharadk)

Hace 2 años, 1 mes

Hola,

Puede lograr este tiempo actual encontrando valores de búfer y restaurando el contenido coincidente usando preg_match_all.

Hice esto para escanear páginas de iframe y funcionó.

Mira mi respuesta aquí en la parte inferior.

https://stackoverflow.com/a/50968448/4528738

(@bcworkz)

Hace 2 años, 1 mes

Err, buscar contenido de búfer no es lo mismo que buscar en un sitio web. Se necesitaría mucho tiempo para usar preg_match_all () en todo el contenido del sitio. Apreciamos lo que ha hecho Deepak.

En mi opinión, su mejor opción es crear una consulta mySQL específica que busque el contenido deseado y devuelva los resultados. También debe tener criterios que restrinjan los tipos de trabajos que se buscarán y que solo busquen cierto estado como «publicar».

Obtendrá los campos completos de vuelta. A continuación, puede eliminar los elementos preg_match_all () similares a lo que sugirió Deepak, en lugar de los resultados de la consulta de búsqueda en lugar de los búferes. Es mucho mejor ejecutar PHP en un conjunto limitado de datos que se sabe que producen resultados que buscar todo a ciegas 🙂

En lugar de usar mySQL directamente, si desea permanecer con PHP, use un ejemplo de la clase WP_Query para usar la funcionalidad de búsqueda incorporada para obtener los resultados iniciales, de los cuales puede eliminar elementos.

(@fanshaweprof)

Hace 2 años, 1 mes

BCworkz y Deepak, gracias por su aporte y eso realmente ayuda. Me he encontrado con eso (wp-query) antes, pero realmente no sabía por dónde empezar. Observaré algunos tonos y aprenderé ese aspecto de wordpress y luego miraré las funciones preg para ordenar los datos. ¿Puedo pedirle un favor por una línea de código de muestra? Si va a buscar en la base de datos páginas con encabezados h2, ¿cómo podría hacer eso el código wp_query? Si me pueden ayudar con eso, sería genial, si no lo entiendo completamente.

Además, ¿conoce algún otro recurso excelente además de aquí donde pueda aprender sobre wp_query?

Gracias por la ayuda y es increíble ser parte de la comunidad de WP.

(@bcworkz)

Hace 2 años, 1 mes

$args = array(
  's' => '<h2>',
);

// The Query
$the_query = new WP_Query( $args );

// The Loop
if ( $the_query->have_posts() ) {
	echo '<ul>';
	while ( $the_query->have_posts() ) {
		$the_query->the_post();
		echo '<li>' . get_the_title() . '</li>';
	}
	echo '</ul>';
	/* Restore original Post Data */
	wp_reset_postdata();
} else {
	// no posts found
}

La mayor parte de la muestra se toma de https://codex.wordpress.org/Class_Reference/WP_Query Para algunas personas, esta página le dice todo lo que necesita. Se entiende que si prefiere los tutoriales en video, esto puede no ser tan útil. La página era suficiente para mí cuando estaba aprendiendo esto, pero aprendo bien de ese contenido. YMMV

(@fanshaweprof)

Hace 2 años, 1 mes

bcworkz,

todo lo que puedo decir es gracias y trabajo bien fuera de tono, pero encuentro este recurso genial. Con este código debería poder analizar y trabajar hacia atrás y así sucesivamente y empezar a abordar esto.

Gracias de nuevo. Lo aprecio.

(@fanshaweprof)

Hace 2 años, 1 mes

Estaba trabajando en la producción escénica. Esta es mi primera versión de cuando consulté una base de datos de wp, puedo ejecutar esta expresión para ver si hay etiquetas de título en el contenido, ya sea que se hayan creado correctamente o no en cualquier combinación.

Esta oración obtendrá CUALQUIER línea de código etiquetada con h1-6 con o sin CONTINUACIÓN cualquier combinación de palabras desde 1 hasta cualquier comienzo con mayúscula o no CONTINUADA con una etiqueta de cierre con un revés o no. Esta expresión identificará cualquier línea de código de encabezado de etiqueta de título que sea correcta o incorrecta.

<(h | H)[1-6]> s * |[a-zA-z0-9]. {1,} < /? (H | H)[1-6]>

Este es un comienzo para aprender basado en lo que necesito, pero es muy emocionante pensar en lo que esto podría llevarme. QUIÉRALO !!

¿Solucionó tu problema??

0 / 0

Deja una respuesta 0

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *