【问题标题】:wordpress shortcode attributes not being passedwordpress 短代码属性没有被传递
【发布时间】:2023-04-05 02:18:02
【问题描述】:

我创建了一个短代码,我试图将一个属性传递给它,但我似乎没有收到另一端的值。

这是我下面的内容;

    function list_display($atts) {
       extract( shortcode_atts(
            array(
                'pageName' => 'No Page Received',
            ), $atts )
        );

    echo $pageName;

    add_shortcode('list-briefings-display', 'list_display');
    }

使用的简码是

     [list-display pageName="My Page Name"]

我正在从 functions.php 运行 require_once

    require_once ( TEMPLATEPATH. '/includes/list-display.php' );

但是我在屏幕上看到的是“未收到页面”,有人能想到我可能错过了什么吗?

短代码生成了更多内容,我没有包含这些内容,这可以很好地呈现。所以这似乎与我传递属性的方式有关。

感谢任何帮助。

【问题讨论】:

    标签: php wordpress shortcode


    【解决方案1】:
    function list_display($atts) {
        $atts = shortcode_atts( array(
            'pagename' => 'No Page Received'
         ), $atts );
         extract($atts);
    
         echo $pagename;
    }
    
    add_shortcode('list-display', 'list_display');
    

    如果您在页面和帖子中使用简码,您可能希望使用“return”而不是“echo”。Echo 可能会导致它过早地将输出发送到屏幕并且不会结束完全符合您的预期。

    我已经更正了您的代码中的一些格式问题,主要是尝试在您尝试引用的同一函数中使用 add_shortcode()。我还将 add_shortcode() 的第一个参数更改为您在示例中尝试使用的简码。

    【讨论】:

    • 感谢 Alexander,切换返回解决了问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-30
    • 1970-01-01
    • 1970-01-01
    • 2018-09-17
    • 2019-10-09
    相关资源
    最近更新 更多