条件快捷码不起作用

时间:2012-09-11 作者:user1255049

我正在使用一个插件NextGEN gallery来显示照片。这个插件中的每个图库对应一个不同的子页面,所以我使用条件短代码将正确的图库分配给相应的子页面。问题是,它不起作用。我以前使用过这种精确的设置,没有任何问题,这让我相信,现在导致问题的原因可能是我忽略的一些小问题。我想一双新鲜的眼睛会有很大帮助。提前谢谢。

埃塔:我也尝试过将相应的短代码直接放在子页面中,不用说,这是行不通的

gallery.php

<div class="content">
        <h2>PARLOUR GALLERY</h2>
        <div id="stylist-list">
            <h3><a href="index.php?page_id=39">REBECCA HAEHNLE</a> | <a href="index.php?page_id=41">CHRIS KELLER</a> | <a href="index.php?page_id=43">BILLY MALLOY</a> | <a href="index.php?page_id=45">VERONICA JONES</a> | <a href="index.php?page_id=47">ABBEY CASTELLANO</a> | <a href="index.php?page_id=49">QUARTIA FUTRELL</a> | <a href="index.php?page_id=51">ROOSEVELT OXENDINE</a> | <a href="index.php?page_id=53">NICOLE LUESCHOW</a> | <a href="index.php?page_id=55">MEREDITH NOWLIN</a> | <a href="index.php?page_id=57">MARICEL YALUNG</a> | <a href="index.php?page_id=59">STEPHANIE BRANDT</a> | <a href="index.php?page_id=61">JANNAH DIXON</a></h3>
        </div><!-- end stylist-list -->
        <div class="gallery">
                <?php     
                    if( is_page( 39 ) ) {
                      // make your stuff here
                      echo do_shortcode(\'[nggallery id=1]\');
                    } else {
                      // output standard content here
                    }

                ?>
                <?php     
                    if( is_page( 41 ) ) {
                      // make your stuff here
                      echo do_shortcode(\'[nggallery id=2]\');
                    } else {
                      // output standard content here
                    }

                ?>
                <?php     
                    if( is_page( 43 ) ) {
                      // make your stuff here
                      echo do_shortcode(\'[nggallery id=3]\');
                    } else {
                      // output standard content here
                    }

                ?>
                <?php     
                    if( is_page( 45 ) ) {
                      // make your stuff here
                      echo do_shortcode(\'[nggallery id=4]\');
                    } else {
                      // output standard content here
                    }

                ?>
                <?php     
                    if( is_page( 47 ) ) {
                      // make your stuff here
                      echo do_shortcode(\'[nggallery id=5]\');
                    } else {
                      // output standard content here
                    }

                ?>
                <?php     
                    if( is_page( 49 ) ) {
                      // make your stuff here
                      echo do_shortcode(\'[nggallery id=6]\');
                    } else {
                      // output standard content here
                    }

                ?>
                <?php     
                    if( is_page( 51 ) ) {
                      // make your stuff here
                      echo do_shortcode(\'[nggallery id=7]\');
                    } else {
                      // output standard content here
                    }

                ?>
                <?php     
                    if( is_page( 53 ) ) {
                      // make your stuff here
                      echo do_shortcode(\'[nggallery id=8]\');
                    } else {
                      // output standard content here
                    }

                ?>
                <?php     
                    if( is_page( 55 ) ) {
                      // make your stuff here
                      echo do_shortcode(\'[nggallery id=9]\');
                    } else {
                      // output standard content here
                    }

                ?>
                <?php     
                    if( is_page( 57 ) ) {
                      // make your stuff here
                      echo do_shortcode(\'[nggallery id=10]\');
                    } else {
                      // output standard content here
                    }

                ?>
                <?php     
                    if( is_page( 59 ) ) {
                      // make your stuff here
                      echo do_shortcode(\'[nggallery id=11]\');
                    } else {
                      // output standard content here
                    }

                ?>
                <?php     
                    if( is_page( 61 ) ) {
                      // make your stuff here
                      echo do_shortcode(\'[nggallery id=12]\');
                    } else {
                      // output standard content here
                    }

                ?>
        </div><!-- end gallery -->
    </div><!-- end content -->

functions.php

<?php function nggallery( $shortcode ){ echo do_shortcode( $shortcode ); /* NextGen Gallery */ } ?>

1 个回复
最合适的回答,由SO网友:Adam 整理而成

作为第一个条件语句中的测试,请替换//php commentelse {} 在你的条件语句中,用一个实际的echo 语句以查看条件是否实际正常工作,

<?php     
    if( is_page( 39 ) ) {
      // make your stuff here
      echo do_shortcode(\'[nggallery id=1]\');
    } else {
      echo \'It works!\';
    }

?>
当然,转到39以外的任何子页,您应该会看到It works! 打印到屏幕,这表明插件的问题更加严重。

我们需要首先确保您的条件正确验证。。

更新似乎您有duplicate question posted here 8月21日,我无意中发现了这个问题,所以我现在可以在你的网站上看到这个问题。

页面id 39对应于此URL,

http://www.yourdomain.com/rebecca-h/

...当导航到该页面时,您可以看到图库工作正常。

但是,当您在“多媒体资料”页面上时,即:。,

http://www.yourdomain.com/gallery/

使用代码块中的任何链接,

<a href="index.php?page_id=39">REBECCA HAEHNLE</a>
<a href="index.php?page_id=41">CHRIS KELLER</a>
<a href="index.php?page_id=43">BILLY MALLOY</a>
...shortened for brevity
浏览器尝试检索的URL为,

http://www.yourdomain.com/gallery/index.php?page_id=39

这在所有方面都是不正确的。事实上,你会注意到你可以看到It works! 尝试查看时,语句回显到屏幕Rebecca Haehnle\'s gallery,这意味着条件语句虽然有效,但正在验证为false 而不是true.

因此,我们当然不会像您所想的那样出现在子页面上。

相反,请将链接更改为以下格式,

<a href="<?php echo bloginfo(\'url\'); ?>/index.php?page_id=39">REBECCA HAEHNLE</a>
etc...
这将打印顶级域名作为URLhttp://www.yourdomain.com 之前/index.php?page_id=XX给你一个正确的URL。

或者,您可以使用permalink/slug,而不是丑陋的index.php?page_id=XX 像这样的生意,

<a href="<?php echo bloginfo(\'url\'); ?>/rebecca-h/">REBECCA HAEHNLE</a>
etc...

结束

相关推荐

Shortcode Strategy

我希望将另一个数据库中的数据插入到我的帖子中,并考虑使用短代码。示例帖子:[imdb id=\"123\" name] was born [imdb id=\"123\" birthday] in [imdb id=\"123\" birth_location]. 我想缓存结果,一旦检索到,就不需要再运行短代码操作了。有没有什么好的策略可以让这种事情更有效率?

条件快捷码不起作用 - 小码农CODE - 行之有效找到问题解决它

条件快捷码不起作用

时间:2012-09-11 作者:user1255049

我正在使用一个插件NextGEN gallery来显示照片。这个插件中的每个图库对应一个不同的子页面,所以我使用条件短代码将正确的图库分配给相应的子页面。问题是,它不起作用。我以前使用过这种精确的设置,没有任何问题,这让我相信,现在导致问题的原因可能是我忽略的一些小问题。我想一双新鲜的眼睛会有很大帮助。提前谢谢。

埃塔:我也尝试过将相应的短代码直接放在子页面中,不用说,这是行不通的

gallery.php

<div class="content">
        <h2>PARLOUR GALLERY</h2>
        <div id="stylist-list">
            <h3><a href="index.php?page_id=39">REBECCA HAEHNLE</a> | <a href="index.php?page_id=41">CHRIS KELLER</a> | <a href="index.php?page_id=43">BILLY MALLOY</a> | <a href="index.php?page_id=45">VERONICA JONES</a> | <a href="index.php?page_id=47">ABBEY CASTELLANO</a> | <a href="index.php?page_id=49">QUARTIA FUTRELL</a> | <a href="index.php?page_id=51">ROOSEVELT OXENDINE</a> | <a href="index.php?page_id=53">NICOLE LUESCHOW</a> | <a href="index.php?page_id=55">MEREDITH NOWLIN</a> | <a href="index.php?page_id=57">MARICEL YALUNG</a> | <a href="index.php?page_id=59">STEPHANIE BRANDT</a> | <a href="index.php?page_id=61">JANNAH DIXON</a></h3>
        </div><!-- end stylist-list -->
        <div class="gallery">
                <?php     
                    if( is_page( 39 ) ) {
                      // make your stuff here
                      echo do_shortcode(\'[nggallery id=1]\');
                    } else {
                      // output standard content here
                    }

                ?>
                <?php     
                    if( is_page( 41 ) ) {
                      // make your stuff here
                      echo do_shortcode(\'[nggallery id=2]\');
                    } else {
                      // output standard content here
                    }

                ?>
                <?php     
                    if( is_page( 43 ) ) {
                      // make your stuff here
                      echo do_shortcode(\'[nggallery id=3]\');
                    } else {
                      // output standard content here
                    }

                ?>
                <?php     
                    if( is_page( 45 ) ) {
                      // make your stuff here
                      echo do_shortcode(\'[nggallery id=4]\');
                    } else {
                      // output standard content here
                    }

                ?>
                <?php     
                    if( is_page( 47 ) ) {
                      // make your stuff here
                      echo do_shortcode(\'[nggallery id=5]\');
                    } else {
                      // output standard content here
                    }

                ?>
                <?php     
                    if( is_page( 49 ) ) {
                      // make your stuff here
                      echo do_shortcode(\'[nggallery id=6]\');
                    } else {
                      // output standard content here
                    }

                ?>
                <?php     
                    if( is_page( 51 ) ) {
                      // make your stuff here
                      echo do_shortcode(\'[nggallery id=7]\');
                    } else {
                      // output standard content here
                    }

                ?>
                <?php     
                    if( is_page( 53 ) ) {
                      // make your stuff here
                      echo do_shortcode(\'[nggallery id=8]\');
                    } else {
                      // output standard content here
                    }

                ?>
                <?php     
                    if( is_page( 55 ) ) {
                      // make your stuff here
                      echo do_shortcode(\'[nggallery id=9]\');
                    } else {
                      // output standard content here
                    }

                ?>
                <?php     
                    if( is_page( 57 ) ) {
                      // make your stuff here
                      echo do_shortcode(\'[nggallery id=10]\');
                    } else {
                      // output standard content here
                    }

                ?>
                <?php     
                    if( is_page( 59 ) ) {
                      // make your stuff here
                      echo do_shortcode(\'[nggallery id=11]\');
                    } else {
                      // output standard content here
                    }

                ?>
                <?php     
                    if( is_page( 61 ) ) {
                      // make your stuff here
                      echo do_shortcode(\'[nggallery id=12]\');
                    } else {
                      // output standard content here
                    }

                ?>
        </div><!-- end gallery -->
    </div><!-- end content -->

functions.php

<?php function nggallery( $shortcode ){ echo do_shortcode( $shortcode ); /* NextGen Gallery */ } ?>

1 个回复
最合适的回答,由SO网友:Adam 整理而成

作为第一个条件语句中的测试,请替换//php commentelse {} 在你的条件语句中,用一个实际的echo 语句以查看条件是否实际正常工作,

<?php     
    if( is_page( 39 ) ) {
      // make your stuff here
      echo do_shortcode(\'[nggallery id=1]\');
    } else {
      echo \'It works!\';
    }

?>
当然,转到39以外的任何子页,您应该会看到It works! 打印到屏幕,这表明插件的问题更加严重。

我们需要首先确保您的条件正确验证。。

更新似乎您有duplicate question posted here 8月21日,我无意中发现了这个问题,所以我现在可以在你的网站上看到这个问题。

页面id 39对应于此URL,

http://www.yourdomain.com/rebecca-h/

...当导航到该页面时,您可以看到图库工作正常。

但是,当您在“多媒体资料”页面上时,即:。,

http://www.yourdomain.com/gallery/

使用代码块中的任何链接,

<a href="index.php?page_id=39">REBECCA HAEHNLE</a>
<a href="index.php?page_id=41">CHRIS KELLER</a>
<a href="index.php?page_id=43">BILLY MALLOY</a>
...shortened for brevity
浏览器尝试检索的URL为,

http://www.yourdomain.com/gallery/index.php?page_id=39

这在所有方面都是不正确的。事实上,你会注意到你可以看到It works! 尝试查看时,语句回显到屏幕Rebecca Haehnle\'s gallery,这意味着条件语句虽然有效,但正在验证为false 而不是true.

因此,我们当然不会像您所想的那样出现在子页面上。

相反,请将链接更改为以下格式,

<a href="<?php echo bloginfo(\'url\'); ?>/index.php?page_id=39">REBECCA HAEHNLE</a>
etc...
这将打印顶级域名作为URLhttp://www.yourdomain.com 之前/index.php?page_id=XX给你一个正确的URL。

或者,您可以使用permalink/slug,而不是丑陋的index.php?page_id=XX 像这样的生意,

<a href="<?php echo bloginfo(\'url\'); ?>/rebecca-h/">REBECCA HAEHNLE</a>
etc...

相关推荐

Geoip shortcodes in comments

我想知道如何从geoip插件添加国家/地区短代码(https://pl.wordpress.org/plugins/geoip-detect/) 输入注释字段。[geoip\\u detect2 property=“country”]据我所知,注释字段必须是所见即所得字段(默认情况下不是文本)。还有其他方法吗?通过自定义php函数或其他方式?你好,Michal