将来自其他类的HTML代码集成到自己的WP插件

时间:2018-05-06 14:39:43

标签: php wordpress

我想在wordpress中编写一个新的插件。我的课程:

插件PHP文件:

<?php
/*
plugin-header (working)
 */

// Exit if accessed directly
defined('ABSPATH' || exit());

// Include classes
include('foo.php');
include('boo.php');

//add Init Hook
add_action('admin_menu','bohoo_admin');

function bohoo_admin() {
    add_options_page('bohoo', 'someTitle', 'manage_options', __FILE__, 'createView');    
}

function createView() {
    $foo = new foo();
    $boo = new boo();

    return $foo->createFooDiv() . $boo->createBooDiv();

}

?>

我的foo.php:

<?php

class foo {

    public function __construct() {

    }

    public function createFooDiv() {
        return '<div><h2>Hi</h2></div>';
    }

}

?>

我的boo.php:

<?php

class boo {

    public function __construct() {

    }

    public function createBooDiv() {
        return '<div> test </div>';
    }

}


?>

现在我基本上尝试的是:HTML代码应该在两个不同的文件中,这些文件应该连接并显示(当然)。

我理解在WP中集成插件的方式:

使用add_options_page - 方法指定插件的显示位置以及显示的代码。对于代码,您使用最后一个参数(在本例中为createView - 方法。如果我的插件PHP文件中的createView()看起来像这样,这个工作到目前为止:

function createView() {
//include HTML-Code directly
?>
    <h1>Hello World</h1>
<?php
}
?>

当我包含boo.phpfoo.php文件而不是直接包含HTML代码时会发生什么事情(因此没有显示任何内容并且出现错误)。我不确定我做错了什么,我也尝试在BOOFOO的返回语句中使用HTML代码,但这也无济于事。我究竟做错了什么?或者根本不可能这样做?

1 个答案:

答案 0 :(得分:0)

您需要打印/回显您的html内容。将createView更改为:

function createView() {
    $foo = new foo();
    $boo = new boo();

    echo $foo->createFooDiv() . $boo->createBooDiv();
}

这就是在add_options docs page中完成的。

基本上当你使用php关闭和打开标签时:

?>
<h1>Some html</h1>
<?php

它相当于在两者之间打印内容:

echo '<h1>Some html</h1>';