如何在函数中添加自定义的JavaScript?

时间:2021-05-19 作者:Ricky

我想写一些JavaScript,并想将其分配给一个自定义功能,我探索了很多,但不幸的是,它们都不起作用,任何帮助都将受到欢迎。

我的代码如下:

add_action(\'init\', function() {
    if (current_user_can(\'disable_image\'))
    {
        //add javascript here
    }
});

2 个回复
最合适的回答,由SO网友:Manish Pushkar Jha 整理而成
function admin_footer_hook(){
        ?>
    <script type="text/javascript">
        
    </script>
<?php
}
add_action( \'admin_footer-post.php\', \'admin_footer_hook\' );
SO网友:Peter HvD

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/

希望这能引导你朝着正确的方向前进。

相关推荐

WP_Query filters

这个问题可能看起来很愚蠢,但我真的没有找到有用的链接。我正在尝试做一个简单的查询,在这里我选择了最近的10篇文章,我希望能够在循环中只显示这10篇文章中的1篇我的代码看起来像 // Query latest 10 records $the_query = new WP_Query( array( \'post_type\' => \'post\', \"order\" => \"DESC\", \'posts_per_page