Wordpress 插件 HTML Bootstrap + PHP

Posted

技术标签:

【中文标题】Wordpress 插件 HTML Bootstrap + PHP【英文标题】:Wordpress Plugin HTML Bootstrap + PHP 【发布时间】:2020-10-06 21:44:07 【问题描述】:

我正在创建我的第一个 wordpress 插件来在 wp-admin-page 上显示一些仪表板数据,但是当我编辑我的插件时只有我的 php 代码被识别,我写的任何 html 标记都被省略了。

我想为前端使用 HTML+bootstrap 制作我的插件,但使用 PHP 进行一些计算,但我不明白我该怎么做。

在我的第一次尝试中,我只能回显 html 标记:

<?php
add_action( 'admin_menu', 'test_plugin_setup_menu' );

function test_plugin_setup_menu()
    add_menu_page( 'Page Title', 'Menu title', 'manage_options', 'test-plugin', 'test_init' );


function test_init()
    echo "<h1> Hello World! </h1>"; 

?>/*THIS OUTPUT ON MY WP ADMIN PAGE AS EXPECTED WITH A HELLO WORLD

但是,我需要使用 Bootstrap 编写大量 HTML 标记,并且只在某些区域使用 PHP,但是我在 ?&gt; 之后编写的任何 HTML 代码都不会显示在页面上。

第二种方法:我用 PHP 引用了我的 HTML 文件

<?php
add_action( 'admin_menu', 'test_plugin_setup_menu' );

function test_plugin_setup_menu()
    add_menu_page( 'Page Title', 'Menu title', 'manage_options', 'test-plugin', 'test_init' );

function test_init()
    $file = file_get_contents('index.html', FILE_USE_INCLUDE_PATH);
    if($file == false)
    
        echo 'file not found';
    
    else
    
        echo $file;
    

?>

最后一次尝试确实显示了我所有的 HTML 登录,我的引导程序在 wp-admin-page 上的样式完美,但我不能在这个 HTML 文件上使用我需要的 PHP 逻辑或 DB 连接..

我的问题是:如何在我的 PHP 插件中同时使用我的 HTML 标记?

额外信息

我对 PHP 和 Wordpress 很陌生,所以我不知道我在代码中做错了什么,因此 HTML 标记无法显示在页面上,除非我将它们引用到外部文件。

非常感谢任何帮助。

【问题讨论】:

在关闭函数前需要结束php标签。 ?&gt;HTML CODE &lt;?php 类似的东西。如果你想在 wp-admin 中使用 bootstrap,你还需要在后端将 bootstrap 加入队列 我不确定您是否只能在单个自定义插件页面上应用引导程序,但您绝对可以使用另一个文件。不是file_get_contents 我尝试在关闭 php 标记的末尾使用 th html 代码,但仍然没有显示,只有 php 代码或里面的回显显示我仍然不知道为什么,可能是因为它被覆盖了主要的 wp-admin 但我对 wordpress 的了解还不够 【参考方案1】:

另一种选择是 include 你的 php 文件。想法是这样的:

add_action( 'admin_menu', 'test_plugin_setup_menu' );

function test_plugin_setup_menu() 
    add_menu_page( 'Page Title', 'Menu title', 'manage_options', 'test-plugin', 'test_init' );


function test_init() 
    ob_start();
    include_once 'file-that-i-want-to-include.php';
    echo ob_get_clean();

然后当然是你的file-that-i-want-to-include.php。像往常一样创建你的页面:

<?php

include_once 'mydatabaseconnction.php';

// ... and so on php codes of sorts

?>

<div class="container">
    <div class="row">
        <div class="col">
            my contents whatever
        </div>
    </div>
</div>

此外,如果您愿意,您可以在特定的管理设置页面中加载引导程序:

add_action('admin_enqueue_scripts', function() 

    if (get_current_screen()->id === 'toplevel_page_test-plugin')  // the prefix is "toplevel_page_"
        $css_path = plugins_url('assets/vendor/bootstrap/bootstrap.min.css'); // just change the path going to your css and js
        $js_path = plugins_url('assets/vendor/bootstrap/bootstrap.min.js');
        wp_enqueue_style('latest-bootstrap-css', $css_path, [], '4.5.0');
        wp_enqueue_script('latest-bootstrap-js', $js_path, [], '4.5.0');
    

);

【讨论】:

以上是关于Wordpress 插件 HTML Bootstrap + PHP的主要内容,如果未能解决你的问题,请参考以下文章

Wordpress 插件 HTML Bootstrap + PHP

WordPress文章目录插件LuckyWP Table of Contents设置教程

html :Wordpress ::插件::简报:简单的表单设置

HTML 没有插件的分页WordPress

wordpress非插件实现后台保护代码

优化提速,6款热门WordPress缓存插件推荐