自定义快捷代码正在导致WSOD

时间:2017-06-08 作者:Chris G

我编写了一个自定义短代码(见下文),并将其放置在函数中。我的孩子主题的php文件。

快捷码的目的是检索以前创建的自定义帖子的标题。在这种情况下,我创建的自定义帖子类型根据帖子的ID命名为“publications\\u test”
例如,[testshorctode id=427] 将输出ID为427的帖子的标题。不幸的是,代码正在生成一个WSOD,我不确定哪里出了问题。

任何帮助都将不胜感激。我绝不是一个网络开发人员,所以我为任何明显的错误道歉。

function register_shortcodes() {
add_shortcode( \'testshortcode\', \'testshortcode_function\' );
}

add_action( \'init\', \'register_shortcodes\' );

function testshortcode_function($atts) {
    extract( shortcode_atts(
        \'post_type\' => \'publications_test\',
        \'post_status\' => \'publish\'
        \'id\' => \'\',
    );

            global $post;

    $string = \'\';
    $query = new WP_Query( $atts );
    if( $query->have_posts() ){
        $string .= \'<ul>\';
        while( $query->have_posts() ){
            $query->the_post();
            $string .= \'<li>\' . get_the_title() . \'</li>\';
        }
        $string .= \'</ul>\';
    }
    wp_reset_postdata();
    return $string;
}

1 个回复
SO网友:mrben522

 extract( shortcode_atts(
        \'post_type\' => \'publications_test\',
        \'post_status\' => \'publish\'
        \'id\' => \'\',
    );
以上是错误的。在该函数中有一个数组,但它不在实际数组中。请尝试以下操作:

 extract( shortcode_atts(array(
        \'post_type\' => \'publications_test\',
        \'post_status\' => \'publish\',
        \'id\' => \'\',
    ), $atts, \'testshortcode\');

shortcode atts

结束