Desafío de Soporte Técnico

Descargo de responsabilidad

Este desafío incluye un conjunto de preguntas que te permitirán demostrar tus mejores habilidades técnicas en WordPress.
Asegúrate de que el código enviado como respuesta a estas preguntas haya sido escrito por ti.
Las respuestas copiadas de Internet son fáciles de detectar: cada fragmento de código es tan único como una huella dactilar.
El uso de las respuestas de otra persona en cualquiera de las preguntas del desafío técnico dará lugar a la descalificación.
Es mejor enviar un código imperfecto escrito por ti que uno "correcto" copiado de Internet.
Al ser el autor del código, muestras tu forma de pensar y nos permites iniciar un diálogo honesto sobre tus habilidades y tu futura trayectoria profesional en SearchWP.
¡Gracias y mucha suerte con el desafío!

Desafío de MySQL 1

Un cliente está trabajando en una solución personalizada para su búsqueda, pero la consulta MySQL que ha elaborado devuelve un error al ejecutarse:

SELECT DISTINCT t.id, t.token
FROM wp_searchwp_tokens t
LEFT JOIN wp_searchwp_index i
WHERE 1=1
AND i.source IN ('post.post', 'post.page','post.product')
AND t.token IN ('make')

a) Por favor, resume los pasos que seguiste para investigar el problema.
b) Por favor, redacta una respuesta al cliente que exponga tus hallazgos y recomendaciones.

Desafío de MySQL 2

¿Cuántas tablas se utilizan en la siguiente consulta?

SELECT SQL_CALC_FOUND_ROWS s.id,s.source,s.site, SUM(relevance) AS relevance
FROM
(SELECT s.id, s.source, s.site, s.attribute,
((SUM(s.occurrences) * CASE
WHEN ((s.source = 'post.post'
AND (s.attribute IN ('title','slug','excerpt')))) THEN 300
WHEN ((s.source = 'post.post'
AND (s.attribute IN ('content')))) THEN 1
END)) AS relevance
FROM wp_searchwp_index s
LEFT JOIN wp_posts s1 ON (s1.ID = s.id)
LEFT JOIN wp_posts AS swpwcposts ON swpwcposts.ID = s.id
WHERE 1=1
AND 1=1
AND s.token IN (73,554)
AND 1=1
AND ((s.source = 'post.post'
AND (s.attribute IN ('title','content','slug','excerpt'))
AND ((`s1`.`post_type` = 'post')
AND (`s1`.`post_status` IN ('publish')))))
GROUP BY s.site,s.source,s.attribute,s.id) AS s
LEFT JOIN wp_posts s1 ON (s1.ID = s.id)
LEFT JOIN wp_posts AS swpwcposts ON swpwcposts.ID = s.id
WHERE 1=1
AND (SUBSTRING(s.source, 1, 5) != 'post.'
OR (SUBSTRING(s.source, 1, 5) = 'post.' AND s.id != '0'))
GROUP BY s.site,s.source,s.id
HAVING relevance > 0
ORDER BY relevance DESC
LIMIT 0,10

Desafío de Hook 1

Un cliente desea utilizar el ejemplo de código de la página de ganchos de Search WP searchwp\query\args.
Pero necesita ayuda para modificar el código y que funcione solo para usuarios no registrados.

a) Por favor, explica cómo personalizarías el ejemplo de código para cumplir con la solicitud del cliente.
b) Por favor, redacta una respuesta al cliente.

Desafío de WP_Query

Crea una WP_Query para obtener los IDs de todos los archivos multimedia adjuntos a una publicación.

Desafío Bonus (opcional)

Este desafío es opcional y tiene una dificultad aumentada.
Resolver este desafío otorga más puntos a un candidato, pero no es obligatorio que lo haga.

SearchWP indexa el sitio y tokeniza el contenido (lo divide en tokens o palabras clave individuales).
Utiliza espacios, signos de puntuación y caracteres especiales como delimitadores de tokens.
Por lo tanto, si tuviera que indexar la distancia focal de una cámara como f/0.95, la dividiría en los siguientes tokens: f, 0 y 95.

Para evitar que esto ocurra, SearchWP utiliza patrones de expresiones regulares para encontrar palabras clave que deben considerarse como un solo token, incluidos los caracteres especiales.
Así, con el patrón de expresión regular correcto, podríamos indicar a SearchWP que f/0.95 es un solo token y no debe dividirse en varios.
Hay un hook searchwp\tokens\regex_patterns (documentado aquí) disponible para agregar patrones de expresiones regulares personalizados para esto.

Supongamos que tenemos un sitio web de fotografía y queremos indicar a SearchWP que considere las distancias focales de las cámaras intactas como un solo token. A continuación, se muestran ejemplos de lentes focales:

f/0.95
f/2
f/1.4

¿Qué patrón de expresión regular se puede utilizar para que coincida con todas las distancias focales posibles y cómo usaríamos el hook anterior para agregar el patrón de expresión regular correcto?

Cree hoy mismo una mejor experiencia de búsqueda en WordPress

No vuelva a perder visitantes por resultados de búsqueda inútiles. SearchWP facilita la creación de su propia búsqueda inteligente en WordPress.

Obtén SearchWP Ahora
Icono de múltiples motores de búsqueda