gpt4 book ai didi

javascript - 如何将自己的 javascript/css 文件添加到 wordpress 插件菜单页面?

转载 作者:行者123 更新时间:2023-11-29 22:06:38 25 4
gpt4 key购买 nike

我想编写我的第一个 WordPress 插件,可能需要一些帮助。单击我的插件的菜单项时,我不知道如何将我的 javascript 文件添加到仪表板区域头部。这是我到目前为止所做的:

第一步:在 wp-content/plugins 目录下创建了一个目录和一个 php 文件,像这样添加了插件的头部:

/* Plugin Name: Test Plugin
Plugin URI: http://my-plugin.com/
Description: test test test
Version: 1.0
Author: me
Author URI: http://my-plugin.com/
License: GPLv2 or later
*/

第二步:使用此功能,我在仪表板菜单的底部添加了我的插件名称(顶级菜单项名称)。我什至不知道为什么名称和 slug 名称被列出两次。我从以下位置获得了该代码:here .我也不知道“mt-top-level-handle”是做什么的。它没有任何功能,但它仍然有效。 “manage_options”是定义用户在此页面上的权限的能力变量。 (有人知道如何让管理员(作者)只能访问此页面吗?)

add_action( 'admin_menu', 'register_my_menu_item' );
function register_my_menu_item() {
add_menu_page(__('top level menu item name','slug-name'), __('top level menu item name','slug-name'), 'manage_options', 'mt-top-level-handle', 'my_plugins_page' );
}

第三步:这个简单的函数在插件页面上显示“Hello World”。

function edit_table_page() {
?>
<h2>Hello World</h2>
<?php
}

现在我想知道如何在该插件页面上使用我的 javascript 文件。我需要在加载 jquery 文件后添加它。

我发现的所有关于添加脚本的内容是:

add_action('wp_enqueue_scripts', 'my_scripts');
function my_scripts() {
wp_enqueue_script('jquery');
wp_register_script('my_script', plugins_url('js/my_script.js', __FILE__),array("jquery"));
wp_enqueue_script('my_script');
}

那没用。那么如何做对呢? :)

最佳答案

add_menu_page() 成功返回钩子(Hook)名称。您可以利用它使您的脚本在动态 load-{$hookname} Hook 上排队:

add_action( 'admin_menu', 'register_my_menu_item' );
function register_my_menu_item()
{
$my_plugins_page = add_menu_page(
__( 'top level menu item name','my_plugin_textdomain' ),
__( 'top level menu item name', 'my_plugin_textdomain' ),
'manage_options',
'mt-top-level-handle',
'my_plugins_page'
);
add_action( 'load-' . $my_plugins_page, 'so20659191_enqueue' );
}

function so20659191_enqueue()
{
wp_enqueue_script( 'my_script', plugins_url( 'js/my_script.js', __FILE__ ), array( 'jquery' ), null, true );
}

function my_plugins_page() {
?>
<h2>Hello World</h2>
<?php
}

关于javascript - 如何将自己的 javascript/css 文件添加到 wordpress 插件菜单页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20659191/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com