在链接中传递FOREACH循环中的变量

时间:2012-06-07 作者:Cheryl James

如何通过链接从foreach循环传递变量?我有正确显示的选项卡。jQuery可以工作。但当我在内容排序的地方调用变量$category时,$category没有值。

<ul id="tabs">

    <li id="tab-content-all" class="active-tab">
        <a href="javascript:viewTab(\'content-all\');">ALL</a>
    </li>

<?php 
    $categories=  get_categories(\'child_of=104\'); 
    foreach ($categories as $category) {
    $option = \'<li id="tab-content-\';
        $option .= $category->cat_name;
        $option .= \'"><a href="javascript:viewTab(\\\'content-\';
        $option .= $category->cat_name;
        $option .=\'\\\');">\';
        $option .= $category->cat_name;
        $option .= \'</a></li>\';
        echo $option;
    }
?>


</ul><!--end of tabs-->
<div id="contents-container">

    <div id="content-all">
        <ul class="gallery">

        <?php
            /**Get the posts by a category*/
            $portfolio_posts = new WP_Query(\'category_name=portfolio\');
            /** Initiate the output*/
            $output = \'\';
            /** Loop through the post */
            while ($portfolio_posts->have_posts()): $portfolio_posts-> the_post();

                /** Add Thumbnail to the anchor if present     */
                $output .= \'<li class="g_image"><a href="\' . get_permalink($post->ID) . \'">\';
                $size=\'medium\';
                if(has_post_thumbnail($post->ID))
                    $output .= get_the_post_thumbnail($post->ID,$size);   
                /** Close the widget*/
                $output .= \'</a></li>\';

            endwhile;
            echo $output;
        ?>  
        </ul>  <!--end of gallery--> 
    </div><!--end of ALL -->  


    <?php
        $output = \'\';
        $output = \'<div id="content-\'.$category->cat_name.\'">\';
    ?>
    <ul class="gallery">"

        <?php

            $category_name = strtolower($category->cat_name);


            /**Get the posts by a category*/
            $portfolio_posts = new WP_Query(\'category_name=\'.$category_name);
            /** Initiate the output*/

            $output = \'\';
            /** Loop through the post */
            while ($portfolio_posts->have_posts()): $portfolio_posts-> the_post();

                /** Add Thumbnail to the anchor if present     */
                $output = $category_name;
                $output .= \'<li class="g_image"><a href="\' . get_permalink($post->ID) . \'">\';

                $size=\'medium\';
                if(has_post_thumbnail($post->ID))
                    $output .= get_the_post_thumbnail($post->ID,$size);   
                /** Close the widget*/
                $output .= \'</a></li>\';

            endwhile;
            echo $output;

            rewind_posts();
        ?>  
    </ul>  <!--end of gallery--> 
</div><!--end of ALL -->  
jQuery选项卡工作正常。谢谢

1 个回复
SO网友:EAMann

这是一个基本的PHP问题,但仍然有点重要。在您的foreach$category 是本地定义的变量。也就是说,它只存在于foreach

所以如果你有

foreach ( $categories as $category ) {
    // You can use $category all you want in here
}

// Out here $category ceases to exist
这就是迭代循环的工作方式。。。即使变量仍然存在于foreach 你无法知道哪个$category 您正在引用。

从表面上看$category 你想要的是你的投资组合类别(根据你之前的代码,我猜它的类别ID是104)。

您仍然可以根据其ID获取此类别,只需确保为其指定唯一的名称,而不是$category:

$parent_category = get_category( 104 );
$parent_category_name = $parent_category->name;
然后你就可以快快乐乐地走了。

结束

相关推荐

WordPress主题需要默认的PHP文档/名称吗?

我正在托管我自己版本的Wordpress,我想为它做一个自定义主题以适合我的网站。然而,互联网上有这么多零碎的例子,我真的不确定我应该有多少PHP文档,以及它们在主题中的名称。到目前为止,我只知道Wordpress主题本身中有以下PHP文档:404.php comments.php footer.php functions.php header.php index.php page.php sidebar.php single.php