Javascript是一种客户端技术,换句话说,它只在呈现的浏览器页面上运行。在我看来,您似乎在寻找一种服务器端解决方案,即,在页面交付到浏览器之前构建页面时运行的解决方案。因此,您可能需要重新考虑您的方法。
然而,可以使用javascript使文本字段等不可编辑,但这是否成功取决于任何可能影响这些字段的现有JS。无论哪种方式,您都需要将JS代码输出到页面,要做到这一点,您需要根据您的上下文使用正确的WordPress排队操作。
因此,如果表单位于站点的用户端,则可以使用wp_enqueue_scripts
挂钩:
function my_enqueue_script() {
if ( current_user_can(\'disable_image\') )
wp_enqueue_script( \'my_js\', \'my-script.js\', false );
}
add_action( \'wp_enqueue_scripts\', \'my_enqueue_script\' );
如果表单位于管理端,则可以使用
admin_enqueue_scripts
挂钩:
function my_enqueue_admin_script( $hook ) {
if ( \'edit.php\' == $hook && current_user_can(\'disable_image\') )
wp_enqueue_script( \'my_admin_js\', \'my-admin-script.js\', array(), \'1.0\' );
}
add_action( \'admin_enqueue_scripts\', \'my_enqueue_admin_script\' );
(您需要确定要将其应用到的确切管理页面-“edit.php”只是一个示例)
您可以从各自的Codex页面中找到关于这两个挂钩的更多信息:wp_enqueue_scripts
: https://developer.wordpress.org/reference/hooks/wp_enqueue_scripts/admin_enqueue_scripts
: https://developer.wordpress.org/reference/hooks/admin_enqueue_scripts/
希望这能引导你朝着正确的方向前进。