我的PHP在哪里,如果elseif破坏?

时间:2014-01-10 15:21:31

标签: php wordpress

我正在尝试使用这一点点PHP来随机化我的标题+背景(同时仍然相互匹配)在Wordpress网站上。这是我到目前为止所提出的,但有些是如何显示不正确的。这是我开始的代码:

<?php
    $bg = array(
                'dinorun.css',
                'potato.css',
                'glorkian.css',
                'somethingelse.css',
                'anothersomething.css'
              );
    $randombg = mt_rand(0,4);
 if (in_category('dino run')) { ?>
    <link rel="stylesheet" href="<?php bloginfo('stylesheet_directory'); ?>/dinorun.css">
<?php } elseif (in_category('potatoman')) { ?>
    <link rel="stylesheet" href="<?php bloginfo('stylesheet_directory'); ?>/potatoman.css">
<?php } elseif (in_category(array('glorkian','glork'))) { ?>
    <link rel="stylesheet" href="<?php bloginfo('stylesheet_directory'); ?>/glorkian.css">
<?php } else { ?>
    <link rel="stylesheet" href="<?php bloginfo('stylesheet_directory') . $bg[$randombg]; ?>" >
<?php } ?>

(编辑:格式化的代码使其更具可读性,虽然它仍然无法正常工作但也做了一些修复)

现在发生的事情是,当我转到“dino run”(或其中一个)类别中的特定页面时,这将正确显示所有内容,但不知何故,在一个未分类的页面上,例如主页,它实际上只会显示potatoman css。我实际上并没有对这些css更改表示赞赏,但我到目前为止我一直在测试我的php函数并检查我的头部以查看我的代码是否存在。

3 个答案:

答案 0 :(得分:1)

应该是

<link rel="stylesheet" href="<?php bloginfo('stylesheet_directory') . '/' .  $bg[$randombg]; ?>" />

而不是

<link rel="stylesheet" href="<?php bloginfo('stylesheet_directory') . $bg[$randombg]; ?>"

所以有两件事:

  • 您的目录和文件之间缺少/
  • 您永远不会关闭可能会导致问题的link标记。

正如旁注。 我认为它应该是mt_rand(0, 4);,因为你的数组中有(而不是4个)5个CSS文件。

答案 1 :(得分:0)

你在stylesheetdirectory之后和hfef中的randombg

之前缺少斜线

答案 2 :(得分:0)

我猜你的bloginfo函数回声样式表路径然后你应该这样做

代码bloginfo( 'stylesheet_directory'); echo $ bg [$ randombg];