web-dev-qa-db-fra.com

Puis-je désactiver l'auto-complétion?

J'ai récemment effectué une mise à niveau vers WordPress 3.0 et rencontre de nombreux problèmes avec la fonction de saisie semi-automatique lors de l'édition de messages via "édition rapide" (par exemple, /wp-admin/edit.php), par exemple l'édition de balises. La zone de saisie semi-automatique masque souvent la zone de texte dans laquelle je tente de saisir du texte et est parfois laissée "derrière" une fois que le bouton "Mettre à jour" a été cliqué.

Existe-t-il un moyen de désactiver la saisie semi-automatique?

METTRE À JOUR

Pour clarifier, il s’agit d’une fonctionnalité Wordpress autocomplete, et non de basée sur un navigateur one.

MISE À JOUR 2

Il semble que je devrais supprimer l'argument 'suggérer' de "load-scripts.php", référencé au bas de chaque page d'administrateur, comme suit:

<script type='text/javascript'
  src='http://www.example.com/path/to/wordpress/wp-admin/load-scripts.php?c=1&amp;load=hoverIntent,common,jquery-color,suggest,inline-edit-post'>
</script>

Cela semble être généré par:

do_action('admin_print_footer_scripts');

mais je perds le code trail à ce point - quelqu'un?

3
Bobby Jack

J'ai une solution que j'ai testée et ça marche.

La saisie semi-automatique des balises est actuellement effectuée via une requête ajax dans le fichier admin-ajax.php. La solution que je suggérerais est de bloquer le traitement de la demande afin qu’elle ne retourne aucun résultat. Je ferais :

function no_tag_suggest() {
    if( DOING_AJAX == true && $_GET['action'] == 'ajax-tag-search' && $_SERVER['HTTP_REFERER'] == admin_url( 'edit.php' ) ) {
        die;
    }
}    
add_action('admin_init', 'no_tag_suggest');

La fonction précédente vérifie:

  1. si c'est une requête ajax
  2. si le paramètre d'action est 'ajax-tag-search'
  3. si l'URL du référent est la page '/wp-admin/edit.php'

Si ces 3 conditions sont remplies, aucun résultat ne sera renvoyé et les suggestions de balises ne seront pas affichées.

Si vous souhaitez supprimer cette saisie semi-automatique de toutes les pages, et pas seulement du fichier "wp-admin/edit.php", vous pouvez procéder comme suit:

function no_tag_suggest() {
    if( DOING_AJAX == true && $_GET['action'] == 'ajax-tag-search' ) ) {
        die;
    }
}    
add_action('admin_init', 'no_tag_suggest');

Je vous suggère de regarder le code de 'admin-ajax.php' pour voir tous les paramètres 'action', ainsi toutes les requêtes ajax que vous pouvez tuer avec des méthodes similaires.

J'espère que mon explication était claire. N'hésitez pas à me demander si vous souhaitez plus de détails ou si vous avez des questions.

Bounty pour moi? :)

5
sorich87

Vous pouvez soit le désactiver dans votre navigateur, soit contourner la source WP et gifler cet attribut autocomplete dans la zone incriminée:

<input autocomplete="off" />

Vous pouvez également utiliser greasemonkey pour modifier la page afin de désactiver la saisie semi-automatique de la manière indiquée ci-dessus.

1
Ben Everard

Vous pouvez utiliser ce plugin:

Tag incomplet

http://wordpress.org/extend/plugins/tag-uncomplete/

Son destiné aux personnes qui ont un très grand nombre de termes de tag, mais il fait exactement ce que vous voulez

0
Tom J Nowell

Vous pouvez désactiver une réponse du serveur, comme l'explique sorich87 , ou essayer la méthode (plus compliquée) de désactivation du javascript qui lance la demande AJAX. Si vous supprimez simplement la bibliothèque suggest , les diversplaces qui appellent la fonction suggest échoueront probablement. Vous devez donc la remplacer par une fonction stub qui ne fait rien.

0
Jan Fabry

Vous pouvez passer attr en élément HTML.

$('#register_username').attr('autocomplete','off');
0
user57366

La saisie semi-automatiqueESTune fonction de navigateur, mais il s’agit d’un paramètre de champ de saisie.

Si un site Web doit respecter les normes de conformité PCI, il sera FAIL PCI si la saisie semi-automatique est activée dans les champs de saisie, quel que soit le navigateur de quiconque.

0
Christopher Eller