Quelqu'un sait comment désactiver cette fonctionnalité afin que les métadonnées ne puissent pas être repositionnées?
J'ai eu le même problème et Google m'a conduit ici. Malheureusement, aucune de ces réponses n'a aidé, mais j'ai finalement trouvé la réponse, et c'est assez facile!
admin_enqueue_scripts
et cela a bien fonctionné.Désactivez la fonctionnalité de tri en mettant ceci dans ce fichier JavaScript:
jQuery(document).ready( function($) {
$('.meta-box-sortables').sortable({
disabled: true
});
$('.postbox .hndle').css('cursor', 'pointer');
});
Essentiellement, cela désactive simplement jQuery UI Sortable , qui alimente la fonctionnalité de déplacement de la métaboxe ( postbox.dev.js: 64 ). Cela fait également basculer le curseur de la poignée de la metabox sur un pointeur de souris standard au lieu d'un curseur de déplacement (idée reproduite avec l'aimable autorisation de brasofilo ci-dessous).
J'espère que cela t'aides!
Edit: je dois ajouter qu'il vaut probablement la peine de suivre certains des autres conseils ici et de désactiver l'enregistrement de l'ordre des métaboxes. Cela empêchera la confusion sur le hasard que quelque chose soit réactivé par erreur.
Deuxième édition: pour le bénéfice des générations futures (et des futurs chercheurs Google), ce correctif a été testé sur WordPress 3.3.1. Je ne peux pas parler aux autres versions!
$('.postbox .hndle').css('cursor','default');
:::: Re: 2ème édition , vous devrez continuer à mettre à jour la réponse dans un avenir prévisible: PLe moyen le plus rapide est de désactiver le JS pour cette fonction. Mais je pense que c'est mieux lorsque vous annulez également l'enregistrement du style de la boîte et que vous lancez un style personnalisé sans les effets de la souris et l'icône d'ouverture / fermeture sur les métadonnées.
la source
admin_init
uniquement dans un type de message spécifique?J'ai répondu à une question similaire avec la suggestion d'autoriser le glissement, mais de désactiver l'enregistrement de la nouvelle commande côté serveur. Cela pourrait vous donner plus de contrôle et être plus à l'épreuve du temps car le JavaScript pourrait changer rapidement, mais le protocole pour communiquer avec le serveur pourrait rester plus robuste. Cet exemple désactive tout glissement, mais vous pouvez le développer pour vérifier votre boîte ou méta page spécifique.
la source
check_ajax_referer
c'est une action, pas un filtre. Vous devriez justedie()
y mettre fin à l'exécution du script, ne rien retourner. Je vais réparer mon code.Le javascript wordpress identifie les métaboxes déplaçables par leur titre h3 avec une classe de "hndle". Il est assez simple de les désactiver spécifiquement en référençant la métabox en question (si vous créez des métabox personnalisées, vous lui aurez attribué un identifiant) et en désactivant toutes les classes hndle en supprimant le nom de classe ou en le renommant. Dans mon cas, j'ai plusieurs types de séparateurs que j'ai étiquetés avec .hndle h3, mais il est peu probable que quelqu'un d'autre ait fait les choses de cette façon. Donc, vous pouvez faire ce que j'ai fait ci-dessous, ou vous pouvez utiliser .find ('. Hndle'). Attr ('class', '') .... ou quelque chose de similaire. Cela irait dans un fichier .js que vous avez mis en file d'attente dans votre fichier functions.php (que ce soit dans votre dossier de thèmes ou votre dossier de plugins). La mise en file d'attente serait appelée par un admin_print_scripts,
la source
J'ajouterais également ce hack Javascript:
... et ce CSS:
J'ai utilisé ce code pour profiter des métadonnées, mais sans le glisser-déposer et les fonctions d'ouverture / fermeture.
la source
.postbox:hover .handlediv { display:none; }
du CSS pour masquer le .handledivJ'ai remarqué que cette question est restée sans réponse, dans la mesure où le demandeur n'a pas sélectionné une réponse correcte.
Jan a donné un exemple pratique de l'arrêt de la réorganisation des métaboxes enregistrées sur Ajax, tandis que d'autres ont fait des suggestions concernant le JS.
Pour autant que je sache, tout ce que vous voulez faire est de désactiver le glissement, rien de plus. Pour ce faire, vous aurez besoin de deux choses, premièrement une fonction pour intercepter l'action de sauvegarde ajax, mais deuxièmement, vous devez également arrêter le glisser-déposer JS sans tuer de fonctionnalité n'importe où ailleurs dans la page, tout en étant de le faire sélectivement pour un type de poste ou une metabox particulière.
En utilisant la fonction Jans et certains jQuery, nous pouvons le faire sans tuer totalement les autres fonctionnalités créées par le script de la boîte aux lettres, comme ça.
Code PHP pour fichier de fonctions de thème ou fichier de plugin
Décommentez 1 des lignes appropriées pour que la mise en file d'attente fonctionne.
jQuery / JS pour le fichier Javascript référencé ci-dessus
Jquery très basique qui supprime la classe triable metabox des éléments applicables, cela empêche le glissement.
Comme vous pouvez le voir, j'ai ajouté dans 1 exemple de type de message pour ajouter le code, réservez dans ce cas. Cependant, vous avez mentionné vouloir avoir également la possibilité de le désactiver pour des métaboxes spécifiques.
Cela peut être fait, il y a juste quelques petits effets secondaires, en supprimant les classes des métaboxes données pour empêcher le glissement, vous empêchez également la fonction de basculement de fonctionner (c'est-à-dire la fonctionnalité de basculement du titre de la métaboxe).
Cela dit, cela peut être fait ...
Tout d'abord, vous mettriez à jour la
disable_metabox_dragging
fonction en ..Encore une fois, en notant que vous devez décommenter la
wp_enqueue_script
ligne applicable .Le tableau à l'intérieur de l'appel de localisation est ce qui détermine les métaboxes à désactiver, l'élément à clé 0 vide est là délibérément parce que la fonction de script de localisation supprime tous les index à clé 0 du tableau.
Deuxièmement, le nouveau fichier JS référencé dans la fonction de mise en file d'attente modifiée ci-dessus.
La seule chose que vous devez faire est de déterminer l'ID des métaboxes que vous souhaitez masquer et de les passer dans le tableau qui définit les métaboxes désactivées (dans l'
wp_localize_scipt
appel).Dans l'ensemble, je ne pense pas que la désactivation sélective des métaboxes soit à court d'inconvénients, il n'y a tout simplement pas de support pour reconfigurer l'action init triable dans WordPress, donc la désactivation du tri des métaboxes par élément va être au mieux hacky (mon code ci-dessus est preuve de cela). Idéalement, ce qui est nécessaire ici est une action dans WordPress pour accrocher l'init triable, mais qui est actuellement codée en dur dans la boîte aux lettres javascript (qui fait plus que simplement configurer triable).
En tout cas, j'espère que cela a aidé à répondre à la question d'origine.
la source
Pour ajouter à toutes les réponses précédentes, si vous souhaitez également empêcher WordPress de charger des positions personnalisées, ce qui suit devrait faire l'affaire (remplacer
post
par n'importe quel type de publication):la source
Je viens de trouver le moyen simple, j'espère qu'un nouveau chercheur l'aidera. En supposant que vous puissiez ajouter un fichier CSS sur le style de mise en file d'attente d'administrateur, j'utilise uniquement CSS pour le faire et désolé pour mon mauvais anglais.
J'espère que cela aide.
la source