使用Switch语句根据主题ID的最后一位更改图像

时间:2017-03-29 作者:Dominik Baumgartner

我正在尝试构建一个函数,根据bbp_get_topic_id().<到目前为止,我得到的是:

function bg_image_topic_titlearea() {
  $letztezifferimgs = substr("\'.bbp_get_topic_id().\'", -1);
  switch ($letztezifferimgs) {
    case "0":
        echo "https://test.bewusstewelt.de/wp-content/uploads/2016/10/Blockaden-lösen-2.jpg";
        break;
    case "1":
        echo "https://test.bewusstewelt.de/wp-content/uploads/2016/09/Das-Leben-ist-ein-Spiel-2.jpg";
        break;
    case "2":
        echo "https://test.bewusstewelt.de/wp-content/uploads/2017/02/Bedürfnisse-erkennen-3.jpg";
        break;
    case "3":
        echo "https://test.bewusstewelt.de/wp-content/uploads/2016/08/Selbsterkenntnis-sich-selbst-finden2-1.jpg";
        break;
    case "4":
        echo "https://test.bewusstewelt.de/wp-content/uploads/2016/11/Reinkarnation-Wiedergeburt-2.jpg";
        break;
    case "5":
        echo "https://test.bewusstewelt.de/wp-content/uploads/2016/10/Intuition3.jpg";
        break;
    case "6":
        echo "https://test.bewusstewelt.de/wp-content/uploads/2016/07/Manchmal-muss-man-loslassen-3.jpg";
        break;
    case "7":
        echo "https://test.bewusstewelt.de/wp-content/uploads/2016/07/Manchmal-muss-man-loslassen-3.jpg";
        break;
    case "8":
        echo "https://test.bewusstewelt.de/wp-content/uploads/2017/02/Pfad.jpg";
        break;
    case "9":
        echo "https://test.bewusstewelt.de/wp-content/uploads/2017/01/Zirbeldrüse-aktivieren-2.jpg";
        break;
}
}  
但如果我使用.bg_image_topic_titlearea(). 获取图像url<我现在正在努力完成一段时间,如果有人能帮助我,我会很高兴的。

亲切问候Dominik

2 个回复
SO网友:Michael Ecklund

I would try something like this:

function bg_image_topic_titlearea() {

    if ( ! function_exists( \'bbp_get_topic_id\' ) ) {
        return false;
    }

    if ( ! $letztezifferimgs = bbp_get_topic_id() ) {
        return false;
    }

    $letztezifferimgs = substr( $letztezifferimgs, - 1 );

    // switch ...

    return true;

}
我建议检查以确保函数调用(bbp_get_topic_id();) 检索主题ID的步骤已存在。

我建议检查是否确实有从函数调用接收到的值来检索主题ID。

不确定为什么需要使用substr();, 但一旦你知道你已经收到了一个主题ID,就执行这个操作。

然后执行switch.

我还建议在switch语句中放置一个“默认情况”。

Example of a "default case":

default:

    // do something...

break;

SO网友:CK MacLeod

如果看不到所讨论的完整代码,就很难隔离其问题。所以,如果我误解了,请原谅我。

我只想补充一下我在上面的评论中所建议的,更典型的短代码实现是1)具有图像url功能return, 不echo, 它的输出,以及2)使用简单字符串作为短代码属性,而不是返回字符串的函数。通常,函数或其参数已经在shortcode函数中返回了字符串。

进一步返回v echo,the Codex states:

请注意,由shortcode调用的函数不应产生任何类型的输出。短代码函数应返回用于替换短代码的文本。直接生成输出将导致意外的结果。这类似于过滤器函数的行为方式,因为它们不应该在调用中产生预期的副作用,因为您无法控制从何时何地调用它们。

信息技术looks, 简而言之,就像你试图返回一个回声,或者可能是回声。(我还要补充一点,至少直到今天,当我犯了两三次同样的错误时,使用回声或等效物是我犯的错误或经常犯的错误——有时你可以侥幸逃脱,有时它会产生意想不到的或仅仅是糟糕的结果。)

至于第二部分,在将短代码放在任何地方时,将函数合并为属性,我从未尝试过,也从未遇到过它,尽管很难根据问题中的内容确定您正在做什么或测试它。无论如何.bg_image_topic_titlearea(). 似乎表示有意再次返回而不是回显较长语句中的字符串,即。,echo \'Here\'s the image url: \' . bg_image_topic_titlearea() . \'How do you like it?\'; 为此,您需要的是返回值,而不是回显语句。

相关推荐

Problem in functions.php file

我正在尝试使用functions.php. 以下是我迄今为止所做的工作: <?php function blogroom() { wp_enqueue_style(\'bootstrap\', get_stylesheet_directory_uri() . \'/assets/lib/bootstrap/dist/css/bootstrap.min.css\'); wp_enqueue_style(\'loade