在Front-Page.php模板上本地化变量失败,但在单页面和分类归档上成功

时间:2014-07-21 作者:chalky

我在php包含文件中有以下代码:

function pass_the_var() {
    $video_embed_code = jkaw_oembed_code();
    return array(
        \'embedCode\' => $video_embed_code
        );
}
在同一文件的前面部分,我还将脚本排入队列:

wp_register_script(\'jkaw-js\', get_template_directory_uri() . \'/lib/js/jkaw.js\', false, \'1.0\', true);
wp_enqueue_script( \'jkaw-js\' );
wp_localize_script( \'jkaw-js\', \'phpVars\', pass_the_var() );
我正在自定义帖子类型“portfolio”上使用此代码。wp_localize_script 成功返回数组并在上填充$video\\u embed\\u code变量single-portfolio.php 和上taxonomy-portfolio-cat.php.

然而,在front-page.php 模板(我使用一个带有自己的wp\\u查询的静态首页来列出所有“公文包”帖子),$video\\u embed\\u代码作为空字符串返回。

single-portfolio.php, taxonomy-portfolio-cat.phpfront-page.php 所有呼叫

get_template_part( \'content\', \'portfolio\' ); 包含if。。其他的陈述

    if ( !is_single() ) { ?>

        <a class="wrapper" style="width:100%; padding-bottom: <?php echo $thumb[\'padding\']; ?>%" href="<?php the_permalink(); ?>" title="<?php the_title_attribute(); ?>">
            <div class="inner">
                <img class="ll" data-original="<?php echo $thumb[\'src\']; ?>" />
            </div>
        </a>

    <?php } else { 
        // code for a single post 
    } ?>
如果我打电话pass_the_var() 内部if(!is_single) 语句返回正确的代码,但由于某种原因,当通过wp_localize_script 在…上front-page.php 它失败了。

我想这与循环和事物被激发的顺序有关,但我无法找出它失败的原因以及如何解决问题。如有任何建议,我们将不胜感激,谢谢。

1 个回复
SO网友:chalky

我设法解决了这个问题,问题在于我如何将主页设置为只显示自定义帖子。

我在“设置”>“阅读”中设置了一个静态主页,并使用了以下内容new WP_Query 在头版。php显示我的所有CPT“portfolio”帖子。

<?php 
$args = array(
    \'post_type\' => array(\'portfolio\'),
    \'posts_per_page\' => \'-1\'
    );

$the_query = new WP_Query( $args );

    if ( $the_query->have_posts() ) :
        while ( $the_query->have_posts() ) : $the_query->the_post();
            get_template_part( \'content\', \'portfolio\' );
        endwhile;
    endif; ?>
修复程序:

我将“设置”>“读回”更改为默认设置

我更改了头版上的查询。php到标准查询:

<?php while ( have_posts() ) : the_post();

get_template_part( \'content\', \'portfolio\' );

endwhile; ?>
我用了pre_get_posts 修改主查询以仅显示我的自定义帖子类型,如下所述http://justintadlock.com/archives/2010/02/02/showing-custom-post-types-on-your-home-blog-page

在这之后,我的变量本地化功能在头版上发挥了作用。php模板。

结束

相关推荐

使用新的WP-Query()从循环中过滤后期格式;

嗨,我目前正在为我的博客构建一个主题。下面的代码指向最新的帖子(特色帖子)。因为这将有一个不同的风格比所有其他职位。然而我想过滤掉帖子格式:链接使用我在循环中定义的WP查询,因为它给我带来了更多的灵活性。我该怎么做呢? <?php $featured = new WP_Query(); $featured->query(\'showposts=1\'); ?> <?php while ($featured->have_post