【问题标题】:Loading page template into shortcode将页面模板加载到简码中
【发布时间】:2019-07-11 19:36:16
【问题描述】:

我正在尝试将页面模板加载到简码中,以便可以轻松地将内容加载到任何我想要的地方。

我做了一些研究,很多人说这段代码对他们有用,但由于某种原因,这似乎无法正确加载我的模板,因为我只是得到一个空白页。

我知道短代码正在执行,因为它不显示为纯文本,所以我猜我加载模板的方式存在问题。

非常感谢任何帮助。

public function register(){
        add_shortcode( 'sponsor_main_page', array($this,'my_form_shortcode') );
            $RegistrationFormId = esc_attr( get_option( 'ik_form_id' ) );
        }

function my_form_shortcode() {
        ob_start();
        get_template_part( 'template-sponsors.php' );
        return ob_get_clean();
    }

【问题讨论】:

    标签: php wordpress composer-php shortcode


    【解决方案1】:

    试着更准确地解释你想要做什么。你把这段代码放在哪里了?您的模板包含什么内容以及它的用途是什么?

    首先使用 get_template_part 你必须删除 .php

    而且我不知道您要加载哪种类型的模板。 您的代码似乎想将变量传递给模板。 而且这段代码似乎是一个类的方法。

    也许你只是把这段代码放在functions.php上,这就是你得到一个空白页面的原因。

    在functions.php上试试这段代码

    add_shortcode('my-shortcode', 'display_my_template');
    function display_my_template() {
        ob_start();
        get_template_part( 'template-sponsors' );
        return ob_get_clean();
    }
    

    然后你就可以像[my-shortcode]那样在你的页面中使用短代码了

    【讨论】:

    • 对,所以解释一下我想做什么,以前我有这个函数将模板应用到 slug 上,效果很好,但现在我们需要将它放入短代码中,出于某些原因。模板本身只是列出了分类中的所有术语。我也无法将其添加到我的函数中,因为这全部在插件中。也很抱歉,但您提供的代码似乎给了我相同的空白页,还有其他想法吗?
    猜你喜欢
    • 1970-01-01
    • 2017-10-07
    • 2016-04-04
    • 1970-01-01
    • 2013-04-15
    • 2023-03-18
    • 1970-01-01
    • 1970-01-01
    • 2016-05-02
    相关资源
    最近更新 更多