从自定义模板在页面内添加PHP/HTML代码

时间:2015-08-10 作者:Marty Fried

我正在帮助我儿子的金融网站进行一些定制编程。他的第一个项目是使用jQuery、flot、php等定制电子表格。

我创建了一个子主题,创建了一个模板,函数。php、样式表等,只要电子表格在页面的末尾,它们都能正常工作。但现在我正试图通过增加他在电子表格前后添加文本的能力来改进它。

我的第一个想法是,我可能可以简单地使用一个短代码,但我不知道这是否是正确的方法。短代码似乎不适合输出大量混合的php/html。我可以在电子表格文件中包含该文件并调用一个函数,这是可行的,但到目前为止,短代码除了打印出实际的短代码本身外,没有做任何事情。但如果这是一种不正确的方法,我不想浪费时间试图让它发挥作用。

有什么办法吗?我想我可以手动解析\\u post()并自己处理一个短代码,但如果有一个内置的方法可以使用,我就不愿意这样做。

More Info<我尝试过使用短代码。在我的功能中。php(我知道正在使用它,因为我加载了一些javascript和css文件):

function register_shortcodes() {
  add_shortcode(\'spreadsheet_placeholder\', \'display_spreadsheet\');
}
add_action( \'init\', \'register_shortcodes\');
我在页面的中间放置了一个标记[电子表格占位符],并在页面的中间放置了该标记。直到今天,它还只是显示了标记,但我刚刚有了一个好主意,即包含函数的外部php文件(display\\u电子表格)。

在包含php文件后,我得到了要显示的电子表格,只是不是我想要的方式。但它确实起了作用。它只是显示在内容上方,而不是在中间。我读到我需要返回数据,而不仅仅是直接输出数据,所以我希望这样。

我曾尝试使用nowdoc变量将整个函数保存到一个变量中,但我认为这过于乐观了(可能非常乐观),因为我将php和html与php标记混合在一起,所以我想我需要进入php代码并将其保存为多个变量,然后将它们连接在一起以返回整个代码。但我想这更像是一个php问题,而不是WordPress。

在这一点上,我不确定哪一个更容易-这样做,或者在页面内容中解析像标记自己这样的短代码,并在代码中执行逻辑。

The solution

感谢bonger和Brad Dalton帮助我使用ob\\u start(),这是我以前从未使用过的。

我从它的文件中取出了我的原始php/html代码,并将其放在一个单独的文件中,放在一个函数中。我在函数中包含了该文件。php,并将短代码注册指向该函数。然后,以Brad为例,我在最后返回了整个文件,一切都很顺利。

谢谢你们俩。我对结果很满意,我儿子也是。

1 个回复
最合适的回答,由SO网友:Brad Dalton 整理而成

这是如何编码shortcode

function foobar_func( $atts ){
    return "foo and bar";
}
add_shortcode( \'foobar\', \'foobar_func\' );
以及使用输出缓冲执行函数

add_shortcode( \'shortcode_tag\', \'function_name\' );
function function_name($atts) {
    ob_start();

    // Add your code

    $var = ob_get_contents();
    ob_end_clean();
    return $var;

}

结束

相关推荐

SHORTCODE_UNAUTOP()是否损坏?

shortcode_unautop() 在里面/wp-includes/formatting.php 应该在文本块中找到短代码,并从中删除换行段落标记。在这个过程中,我一直对段落标记存在问题。以下是var_dump($pee), 我将其放在函数的最开头,即处理前的字符串:string(353) \"<p>[row wrap=\"true\"]</p> <p>[one_half]</p> <p>[text_block]Fusce