Desafio de Suporte Técnico

Aviso Legal

Este desafio inclui um conjunto de perguntas que permitem demonstrar suas melhores habilidades técnicas em WordPress.
Por favor, certifique-se de que o código enviado como resposta a estas perguntas foi escrito por você.
Respostas copiadas da internet são fáceis de detectar: cada trecho de código é tão único quanto uma impressão digital.
O uso de respostas de terceiros em qualquer uma das perguntas do desafio técnico levará à desqualificação.
É melhor enviar um código imperfeito escrito por você do que um código "correto" copiado da internet.
Ao criar o código, você demonstra sua linha de raciocínio e nos permite iniciar um diálogo honesto sobre suas habilidades e futuro caminho de carreira na SearchWP.
Obrigado e boa sorte com o desafio!

Desafio MySQL 1

Um cliente está trabalhando em uma solução personalizada para sua busca, mas a consulta MySQL que ele elaborou retorna um erro quando executada:

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, resuma as etapas que você tomou para investigar o problema.
b) Por favor, componha uma resposta ao cliente que relate suas descobertas e recomendações.

Desafio MySQL 2

Quantas tabelas são usadas na consulta a seguir?

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

Desafio de Hook 1

Um cliente gostaria de usar o exemplo de código do hook searchwp\query\args na página de Hooks da Search WP.
Mas ele precisa de ajuda para alterar o código para funcionar apenas para usuários deslogados.

a) Por favor, explique como você personalizaria o exemplo de código para atender à solicitação do cliente.
b) Por favor, componha uma resposta ao cliente.

Desafio WP_Query

Construa uma WP_Query para obter os IDs de todos os arquivos de mídia que estão anexados a um post.

Desafio Bônus (opcional)

Este desafio é opcional e tem uma dificuldade aumentada.
Resolver este desafio dá mais pontos a um candidato, mas não é obrigatório que ele o faça.

SearchWP indexa o site e tokeniza o conteúdo (divide-o em tokens ou palavras-chave individuais).
Ele usa espaços, pontuação e caracteres especiais como delimitadores de tokens.
Portanto, se ele tivesse que indexar o comprimento focal de uma câmera como f/0.95, ele dividiria isso nos seguintes tokens: f, 0 e 95.

Para evitar que isso ocorra, o SearchWP usa padrões regex para encontrar palavras-chave que devem ser consideradas como um único token, incluindo os caracteres especiais.
Assim, com o padrão regex correto, poderíamos dizer ao SearchWP que f/0.95 é um único token e não deve ser dividido em vários tokens.
Um hook searchwp\tokens\regex_patterns (documentado aqui) está disponível para adicionar padrões regex personalizados para isso.

Vamos supor que temos um site de fotografia e queremos instruir o SearchWP a considerar os comprimentos focais da câmera intactos como um único token. Exemplos de lentes focais estão abaixo:

f/0.95
f/2
f/1.4

Que padrão regex pode ser usado para corresponder a todos os comprimentos focais possíveis e como usaríamos o hook acima para adicionar o padrão regex correto?

Crie uma Experiência de Pesquisa WordPress Melhor Hoje

Nunca mais perca visitantes para resultados de pesquisa inúteis. O SearchWP torna a criação de sua própria pesquisa inteligente do WordPress rápida e fácil.

Adquira o SearchWP Agora
Ícone de Múltiplos Mecanismos de Busca