gpt4 book ai didi

php - WordPress将样式表添加到插件菜单页面

转载 作者:太空宇宙 更新时间:2023-11-04 01:37:52 25 4
gpt4 key购买 nike

已解决

我需要调用 new Form(),虽然我在 WebSecurity.php 中调用了

array(__CLASS__,'ws_page_render') //I though this would call new Form()

我正在尝试将样式表添加到 WordPress 插件中的菜单页面。我阅读了文档并应用了它,但它仍然没有显示在标题中。添加所有资源。我希望有人能帮助我。

我需要在 header 中添加style.css,以便request_form.php可以在网页上呈现css。

我已经用正确的方法添加了样式表:

我已经更新了 Form 类

    function __construct()
{
//browser finds the style sheet
// output: http://cms.local/wordpress/wp-content/plugins/web_security_extension/includes/resources/css/ws-style.css
echo plugin_dir_url( __FILE__ ) . 'resources/css/ws-style.css';

add_action( 'admin_enqueue_scripts', array($this, 'ws_load_css_1') );

include_once WSS_EXTESION_DIR . '/includes/views/request_form.php';
}

function ws_load_css_1()
{
wp_register_style( 'ws_css', plugin_dir_url( __FILE__ ) . 'resources/css/ws-style.css');
wp_enqueue_style( 'ws_css' );
}

元素结构

根插件

  • 包括
    • 资源
      • CSS
        • ws-style.css
    • 观看次数
      • request_form.php
    • 来自.php
  • 初始化文件
  • WebSecurity.php

初始化文件

<?php

/*
Plugin Name: websecurityscan
Description:
Version: 0.1
Author:
*/

define('WSS_EXTESION', __FILE__);

define('WSS_EXTESION_DIR', untrailingslashit( dirname(WSS_EXTESION) ));

require_once WSS_EXTESION_DIR . '/WebSecurity.php';

网络安全.php

<?php

require_once WSS_EXTESION_DIR . '/includes/Form.php';

class WebSecurity
{

function __construct()
{
add_action('admin_menu', array($this, 'ws_add_menu'));
}

function ws_add_menu()
{

add_menu_page(
'Web Application Scanner',
'Web App Scanner',
'manage_options',
'Web_App_Scanner_menu',
array(__CLASS__,'ws_page_render')
);

}

function ws_page_render()
{
new Form();
}

}

new WebSecurity();

?>

表单.php

<?php

class Form
{

function __construct()
{
//browser finds the style sheet
echo plugin_dir_url( __FILE__ ) . 'resources/css/ws-style.css';

add_action( 'admin_enqueue_scripts', array($this, 'ws_load_css_1') );

include_once WSS_EXTESION_DIR . '/includes/views/request_form.php';
}

function ws_load_css_1()
{
wp_register_style( 'ws_css', plugin_dir_url( __FILE__ ) . 'resources/css/ws-style.css');
wp_enqueue_style( 'ws_css' );
}
}

请求表单.php

<html>
<body>

<div class="wrapper">
<form action="request_form.php" method="post">

<label>Naam</label>
<input type="text" name="naam">

<label>Bedrijf</label>
<input type="text" name="bedrijf">

<label>Email</label>
<input type="email" name="email">

<input type="submit" name="submit" value="verstuur">

</form>
</div>

</body>
</html>

样式.css

.wrapper{
margin: auto;
width: 50%;
padding: 10px;
}

最佳答案

使用 admin_enqueue_scripts Hook 而不是 wp_enqueue_scripts 将 Assets 排入管理面板。像下面这样编辑 Form 类构造函数:

function __construct()
{
add_action('admin_enqueue_scripts',array($this, 'ws_load_css'));
include_once WSS_EXTESION_DIR . '/includes/views/request_form.php';
}

wp_enqueue_scripts 用于在首页排队的操作 Hook 。

admin_enqueue_scripts 用于在管理页面上排队的操作 Hook 。

更新

此外,您必须使用 css 文件 url 而不是路径。编辑您的 ws_load_css() 函数并使用 plugin_dir_url() 函数,如下所示:

function ws_load_css()
{
wp_enqueue_style('style', plugin_dir_url( __FILE__ ) . 'resources/css/ws-style.css');
}

对于新版本的代码,编辑您的 load_custom_wp_admin_style() 函数,如下所示:

function load_custom_wp_admin_style() {
wp_register_style( 'custom_wp_admin_css', plugin_dir_url( __FILE__ ) . 'resources/css/ws-style.css');
wp_enqueue_style( 'custom_wp_admin_css' );
}

注意:使用resources/css/ws-style.css 而不是/resources/css/ws-style.css

关于php - WordPress将样式表添加到插件菜单页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45864497/

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