Comment utiliser «Ajouter un lien» pour un widget WordPress

12

Dans l'éditeur WYSIWYG de WordPress, vous obtenez une fenêtre contextuelle si vous souhaitez ajouter un lien pour un texte. Est-il possible d'accéder à cette fonctionnalité? Parce que je veux utiliser cette fenêtre contextuelle pour un widget WordPress que j'ai créé afin que vous puissiez ajouter des liens vers un widget si vous le configurez dans le backend.

Voici une capture d'écran de ce que je veux dire:

    
posée Benny Neugebauer 31.08.2013 - 17:05

1 réponse

8

J'ai essayé pendant un moment et je ne pouvais pas obtenir que cela fonctionne parfaitement, mais c'est proche, il est difficile d'étendre avec <form> les styles de popups étant codés en dur, pensés possibles avec plus de travail.

Pour commencer, vous pouvez:

Mettez en file d'attente le code JavaScript et les styles de la fenêtre contextuelle du lien. Le fichier .js principal est wp-includes/wplink.js . Selon l'endroit où vous le chargez, vous devrez peut-être ajouter plus ou moins de scripts / styles car il dépend de plusieurs ( thickbox, jQuery-ui, ui-dialog, etc. ).

wp_enqueue_script('wplink');
wp_enqueue_script('wpdialogs-popup'); //also might need this

// need these styles
wp_enqueue_style('wp-jquery-ui-dialog');
wp_enqueue_style('thickbox');

Définissez la variable traduisible:

var wpLinkL10n = {"title":"Insert\/edit link","update":"Update","save":"Add Link","noTitle":"(no title)","noMatchesFound":"No matches found."};

Vous devriez maintenant pouvoir étendre la fonction wpLink à l'aide de quelque chose comme:

// test button
<button class="link-btn">Click button for Links</button>

jQuery('.link-btn').on('click', function(event) {
  wpActiveEditor = true;
  wpLink.title = "Hello"; //Custom title example
  wpLink.open();    // Open the link popup
  return false;
});

Vous avez besoin d'un élément <form> pour la fenêtre contextuelle qui, par défaut, est trop long à coller ici, vous pouvez voir celui-ci ici: enlace

Maintenant, cela pose des problèmes majeurs, à savoir que je n’ai ajouté aucun code de fermeture ou de soumission (ou vérification) à la fonction, tel que wpLink.close ou wpLink.textarea , consultez donc wplink.js pour plus d’informations.

Je suis désolé que cela prenne trop de temps, sauf s’il me manque quelque chose de fondamental, mais cela devrait vous rendre la majeure partie du chemin.

    
réponse donnée Wyck 01.09.2013 - 06:58

Lire d'autres questions sur les étiquettes