带有传递给模板的属性的WordPress函数

时间:2017-12-07 作者:DOPFunk

这东西真的很新。

我基本上想创建一个带有属性的短代码,该属性调用函数“playlist\\u code”,该函数插入带有该属性的模板。

这是我的代码,到目前为止,我无法让模板文件使用我在函数中声明的属性。如果我使用return检查$tp\\u atts[\'id\']值,我会得到正确的输出,但我似乎无法从模板调用它。

功能:

function playlist_code( $atts ){
$tp_atts = shortcode_atts(array(\'id\' => \'1\'), $atts, \'playlist_code\');
locate_template(\'template-parts/single_playlist.php\', true);
}

add_shortcode(\'playlist_code\', \'playlist_code\'); 
模板:

<div class="playlist_container">
            <?php
                $tracks = get_post_meta($tp_atts[\'id\'], \'tracks\', true);
                $list = explode(\',\', trim($tracks));
                if ( $list ){
                    ?>
                    <div class="list-group list-group-lg">
                        <?php
                            $args = array(
                                \'posts_per_page\'   => -1,
                                \'orderby\'          => \'post__in\',
                                \'order\'            => \'DESC\',
                                \'post_type\'        => \'download\',
                                \'post__in\'         => $list
                            );
                            $postsi = get_posts($args);
                            foreach ( $postsi as $post ) : setup_postdata( $post );
                                ?>
                                <div class="list-group-item">
                                <?php get_template_part( \'template-parts/content\', \'download-list\' ); ?>
                                </div>
                            <?php endforeach;
                            wp_reset_postdata();
                        ?>
                    </div>
                <?php } ?>
        </div>

1 个回复
SO网友:Facundo Farias

您可以使用set_query_var(\'playlist_id\', $tp_atts[\'id\']);.

当你稍后打电话时locate_template 具有$load = true, 它会呼叫load_template, 哪一个extracts查询变量,使其成为全局变量,并可访问模板文件(在本例中,为$playlist_id).

结束

相关推荐

从Functions.php访问插件数据

我正在尝试将wordpress帖子中的数据插入到新的表数据库表中,而不是WP_postmeta. 我的函数正在运行,它将插入$postid 没问题。我遇到的问题是,我需要从Marty Spellerbergs的“地址地理编码器”插件中插入纬度和经度坐标。在插件页面上,Marty说您可以使用以下内容访问循环中的Cooridate:<?php echo get_geocode_lng( $post->ID ); ?> <?php echo get_geocode_lat( $p