Tech Support Challenge

Haftungsausschluss

Diese Herausforderung beinhaltet eine Reihe von Fragen, mit denen Sie Ihre besten technischen Fähigkeiten in WordPress unter Beweis stellen können.
Bitte stellen Sie sicher, dass der Code, der als Antwort auf diese Fragen eingereicht wird, von Ihnen geschrieben wurde.
Antworten, die aus dem Internet kopiert wurden, sind leicht zu erkennen: Jedes Codefragment ist so einzigartig wie ein Fingerabdruck.
Die Verwendung von Antworten anderer Personen bei einer der technischen Herausforderungsfragen führt zur Disqualifikation.
Es ist besser, unvollkommenen Code einzureichen, der von Ihnen geschrieben wurde, als einen „korrekten“, der aus dem Internet kopiert wurde.
Durch die Erstellung des Codes zeigen Sie Ihre Denkweise und ermöglichen uns einen ehrlichen Dialog über Ihre Fähigkeiten und Ihren zukünftigen Karriereweg bei SearchWP.
Vielen Dank und viel Erfolg bei der Herausforderung!

MySQL Challenge 1

Ein Kunde arbeitet an einer benutzerdefinierten Lösung für seine Suche, aber die von ihm erstellte MySQL-Abfrage gibt bei der Ausführung einen Fehler zurück:

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) Bitte fassen Sie die Schritte zusammen, die Sie zur Untersuchung des Problems unternommen haben.
b) Bitte verfassen Sie eine Antwort an den Kunden, die Ihre Ergebnisse und Empfehlungen wiedergibt.

MySQL Challenge 2

Wie viele Tabellen werden in der folgenden Abfrage verwendet?

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

Hook Challenge 1

Ein Kunde möchte das Codebeispiel von der searchwp\query\args Search WP Hook-Seite verwenden.
Er benötigt jedoch Hilfe bei der Änderung des Codes, damit er nur für abgemeldete Benutzer funktioniert.

a) Bitte erklären Sie, wie Sie das Codebeispiel an die Anfrage des Kunden anpassen würden.
b) Bitte verfassen Sie eine Antwort an den Kunden.

WP_Query Challenge

Erstellen Sie eine WP_Query, um die IDs aller Mediendateien abzurufen, die an einen Beitrag angehängt sind.

Bonus-Herausforderung (optional)

Diese Herausforderung ist optional und hat einen erhöhten Schwierigkeitsgrad.
Das Lösen dieser Herausforderung gibt einem Kandidaten mehr Punkte, aber ein Kandidat ist nicht verpflichtet, sie zu lösen.

SearchWP indiziert die Website und zerlegt den Inhalt in Tokens (teilt ihn in einzelne Tokens oder Schlüsselwörter auf).
Es verwendet Leerzeichen, Satzzeichen und Sonderzeichen als Token-Grenzen.
Wenn es also eine Kamera-Brennweite wie f/0.95 indizieren müsste, würde es diese in die folgenden Tokens aufteilen: f, 0 und 95.

Um dies zu verhindern, verwendet SearchWP Regex-Muster, um Schlüsselwörter zu finden, die als einzelnes Token einschließlich der Sonderzeichen betrachtet werden sollen.
Mit dem richtigen Regex-Muster könnten wir SearchWP also mitteilen, dass f/0.95 ein einzelnes Token ist und nicht in mehrere Tokens aufgeteilt werden sollte.
Ein searchwp\tokens\regex_patterns Hook (dokumentiert hier) steht zur Verfügung, um benutzerdefinierte Regex-Muster dafür hinzuzufügen.

Nehmen wir an, wir haben eine Fotografen-Website und möchten SearchWP anweisen, Kamera-Brennweiten als einzelnes Token zu betrachten. Beispiele für Brennweiten sind unten aufgeführt:

f/0.95
f/2
f/1.4

Welches Regex-Muster kann verwendet werden, um alle möglichen Brennweiten abzugleichen, und wie würden wir den obigen Hook verwenden, um das richtige Regex-Muster hinzuzufügen?

Erstellen Sie noch heute eine bessere WordPress-Sucherfahrung

Verlieren Sie nie wieder Besucher an unzureichende Suchergebnisse. SearchWP macht die Erstellung Ihrer eigenen intelligenten WordPress-Suche schnell und einfach.

Get SearchWP Now
Symbol für mehrere Suchmaschinen