テクニカルサポートチャレンジ

免責事項

このチャレンジには、WordPressにおける最高の技術スキルを実証できる一連の質問が含まれています。
これらの質問への回答として提出するコードは、ご自身で書いたものであることを確認してください。
インターネットからコピーされた回答は検出が容易です。コードの断片は、指紋と同じくらいユニークです。
テクニカルチャレンジの質問のいずれかで、他人の回答を使用すると失格となります。
インターネットから「正しい」コードをコピーするよりも、不完全でも自分で書いたコードを提出する方が良いでしょう。
コードを自分で作成することにより、あなたの思考プロセスを示すことができ、あなたのスキルとSearchWPでの将来のキャリアパスについて、正直な対話を開始することができます。
ご協力ありがとうございます。チャレンジの成功をお祈りしています!

MySQLチャレンジ 1

お客様が検索用のカスタムソリューションに取り組んでいますが、作成したMySQLクエリを実行するとエラーが発生します。

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) 問題を調査するために実行した手順を要約してください。
b) 調査結果と推奨事項を伝える、お客様への回答を作成してください。

MySQLチャレンジ 2

次のクエリで使用されているテーブルの数はいくつですか?

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

フックチャレンジ 1

お客様はsearchwp\query\argsSearch WPフックページのコード例を使用したいと考えています。
しかし、ログアウトしているユーザーのみで機能するようにコードを変更するのに助けが必要です。

a) お客様のリクエストを満たすようにコード例をどのようにカスタマイズするか説明してください。
b) お客様への回答を作成してください。

WP_Queryチャレンジ

投稿に添付されているすべてのメディアファイルのIDを取得するWP_Queryを作成してください。

ボーナスチャレンジ(任意)

このチャレンジは任意であり、難易度が上がっています。
このチャレンジを解決すると、候補者はより多くのポイントを獲得できますが、候補者はそれを行う必要はありません。

SearchWPはサイトをインデックス化し、コンテンツをトークン化(単一のトークンまたはキーワードに分割)します。
スペース、句読点、特殊文字をトークンの境界として使用します。
そのため、f/0.95のようなカメラの焦点距離をインデックス化する必要がある場合、これをf、0、95の次のトークンに分割します。

これを防ぐために、SearchWPは正規表現パターンを使用して、特殊文字を含む単一のトークンと見なされるべきキーワードを見つけます。
したがって、正しい正規表現パターンを使用すると、f/0.95が単一のトークンであり、複数のトークンに分割されるべきではないことをSearchWPに伝えることができます。
searchwp\tokens\regex_patternsフック(ここで文書化)を使用して、カスタム正規表現パターンを追加できます。

写真家のウェブサイトがあると仮定して、SearchWPにカメラの焦点距離を単一のトークンとしてそのまま考慮するように指示したいと思います。焦点レンズの例を以下に示します。

f/0.95
f/2
f/1.4

すべての可能な焦点距離に一致する正規表現パターンは何ですか?また、上記のフックを使用して正しい正規表現パターンを追加するにはどうすればよいですか?

今日からより良いWordPress検索エクスペリエンスを作成しましょう

役に立たない検索結果で訪問者を失うことはもうありません。SearchWPを使用すると、独自のスマートなWordPress検索をすばやく簡単に作成できます。

今すぐSearchWPを入手
複数の検索エンジンアイコン