Créer un widget de recherche en utilisant le Widget de recherche API de repos WordPress
\
}
Contenu du Widget principal ici
Si (! Empty ($posts) {
Echo \
Foreach (position $position)
Echo \
}
Echo \
}
Echo $args [‘after _ Widget’];
}
\/ * *
Formulaire d’option de sortie sur admin
* *
@ Param Array $instance Widget Options
* \/
Formulaire de fonction publique ($instance) {
Afficher le formulaire d’option sur admin
$title = (! Empty ($instance [‘title’)) Exemple [‘title’]: ‘;
& quot; Turbine à gaz;
& lt; Étiquette C’est… Php echo $this – & gt; Get _ Field Name (‘title’) Turbine à gaz Quote Turbine à gaz; Titre Étiquette & gt;
& lt; Saisissez la classe = ‘ Widefat ‘ Id = \
& lt;? Php
}
Fin de la classe
Ajouter _ action (‘widgets init’, fonction () {
Register _ Widget (\
});
En gros, nous avons créé un nouveau plug – in. Dans ce plugin, nous avons créé un widget qui affiche une liste personnalisée de messages de la base de connaissances Hero d’un autre site Web.
Ce que nous allons faire maintenant est de le modifier pour créer une fonction de recherche. Étape 1: modifier la requête de base pour obtenir des résultats différents dans l’article précédent, vous vous souviendrez que nous avons discuté de la façon d’obtenir la liste des messages, puis comment modifier les paramètres afin que vous puissiez obtenir les types de messages personnalisés pour la base de connaissances. Ce n’est peut – être pas surprenant, ce n’est pas tout ce qu’on peut faire avec la méthode Get. En utilisant les paramètres du filtre, nous pouvons en fait
, nous pouvons utiliser la fonction get _ Search form () déjà définie par WordPress au lieu de créer un formulaire de recherche séparé.
Dans le fichier plug – in, recherchez dans la fonction Widget une ligne avec un commentaire \/ \/ contenu principal du Widget et ajoutez get _ Search form (); Et le modifier directement en dessous comme suit:
Contenu du Widget principal ici
Get _ Search form ();
Si (! Empty ($posts) {
Echo \
Foreach (position $position)
Echo \
}
Echo \
}
Maintenant, lorsque nous afficherons le Widget sur la page, vous verrez la liste des messages de la base de connaissances sous le formulaire de recherche standard.
Nous apprenons la situation en utilisant get _ Search form (); Lorsque nous cherchons quelque chose, les paramètres de recherche apparaissent dans l’URL comme suit:
\/? S = essai
\
Si (isset ($_ Get [‘s]) & amp Amp;! NULL ($_ Get [‘s’]) {
$Response = WP _ Remote get (‘ http:\/\/website-with-api.com\/wp-json\/wp\/v2\/ht_kb?filter = ‘$ Obtenir [‘s]);
}
Ministère de l & apos; éducation
$Response = WP _ Remote get (‘ http:\/\/website-with-api.com\/wp-json\/wp\/v2\/ht_kb\/ «);
}
Ce que ce code fait est de vérifier que $_ Get [‘s’] est défini et n’est pas vide. Dans l’affirmative, veuillez l’inclure dans votre réponse. Sinon, la recherche ne s’exécute pas et vous voulez voir tous les messages de la base de connaissances comme d’habitude.
Pour plus de détails sur la fonction get _ Search form (), voir ici. C’est là que nous voulons que cet article se termine, n’est – ce pas? Après tout, nous avons mis en place un formulaire de recherche qui utilise l’api WordPress rest pour interroger les messages sur les sites externes, puis retourner les résultats en fonction des paramètres de recherche. Mais… Étape 3
Si nous Testons le nouveau Widget de recherche, nous pouvons voir que le Widget fonctionne comme prévu, mais il renvoie également les résultats du site actuel dans le contenu de la page d’accueil.
La première étape consiste à modifier physiquement le module en créant une nouvelle fonction.
API de fonction _ Search form ($form) {
$form = ‘& lt; Rôle du formulaire = ‘ Recherche \
& lt; Étiquette & gt;
& lt; Span class = ‘ Texte du lecteur d’écran Gt; ‘ X (‘Search:’, ‘Label’) ‘ LT \/ Span & gt;
& lt; Type d’entrée Recherche \
Arch _ Query (). ‘ Quote; Nom = \
& lt \/ Étiquette & gt;
& lt; Type de bouton = ‘ Soumis» Classe = ‘ Rechercher la soumission Turbine à gaz Lt; Span class = ‘ Texte du lecteur d’écran Turbine à gaz; Recherche Span & gt LT \/ Bouton & gt;
& lt \/ Formulaire & gt;;
Retourner le formulaire $;
}
Ajouter un filtre (‘get _ Search form’, ‘API Search form’, 100);
La fonction elle – même est très simple et est essentiellement un nouveau module qui peut être utilisé au lieu du module par défaut. Si nous examinons le sujet de référence 2616 et examinons les modules de recherche existants, nous remarquerons que la seule différence dans le Code est le nom entré dans la recherche. Initialement \
Exposé)
Reviens!
}
$posts = json _ decode (WP Remote retrieve Body ($Response);
Si (NULL ($post) {
Reviens!
}
Echo $args [‘before _ Widget’];
Si (! Empty ($instance [‘title]) {
Echo $args [‘before _ title’]. Appliquer le filtre U (‘Widget _ title’, instance [‘title], $instance, $this – & gt; ID base). Args [‘after _ title’];
}
Contenu du Widget principal ici
Get _ Search form ();
Si (! Empty ($posts) {
Echo \
Foreach (position $position)
Echo \
}
Echo \
}
Echo $args [‘after _ Widget’];
}
\/ * *
Formulaire d’option de sortie sur admin
* *
@ Param Array $instance Widget Options
* \/
Formulaire de fonction publique ($instance) {
Afficher le formulaire d’option sur admin
$title = (! Empty ($instance [‘title’)) Exemple [‘title’]: ‘;
& quot; Turbine à gaz;
& lt; Étiquette C’est… Php echo $this – & gt; Get _ Field Name (‘title’) Turbine à gaz Quote Turbine à gaz; Titre Étiquette & gt;
& lt; Saisissez la classe = ‘ Widefat ‘ Id = \
Nom = » C’est… Php echo $this – & gt; Get _ Field Name (‘title’) Turbine à gaz Quote; Type = ‘ Texte ‘ Valeur = » C’est… Php Echo ESC _ ATTR ($title) Turbine à gaz Quote Turbine à gaz;
& lt;? Php
}
}
API de fonction _ Search form ($form) {
$form = ‘& lt; Rôle du formulaire = ‘ Recherche \
& lt; Étiquette & gt;
& lt; Span class = ‘ Texte du lecteur d’écran Gt; ‘ X (‘Search:’, ‘Label’) ‘ LT \/ Span & gt;
& lt; Type d’entrée Recherche \