将函数转换为php短代码

时间:2014-12-23 12:17:53

标签: php html wordpress

我是php wordpress短代码的新手,我遇到了有关创建我可以插入内容的短代码的问题。我正在创建的函数/短代码没有输入值。问题是,当我在内容中使用它时,所有内容似乎都消失了,并且函数中没有显示任何内容。当我尝试回应它而不是通过短代码时,该功能自身起作用。我做错了什么

getHTML正在调用另一个函数,但没有理由添加它,因为它有效。希望能为我的错误做一些指导,使这个短代码工作

include(TEMPLATEPATH . '/simple_html_dom.php');

function getGames() {


$html = str_get_html(getHTML('http://URL',10));
    //$title = str_replace(array("\n", "\r"), '',$html->find("/[@id='main']/div[1]/div[2]/div[1]/h2/strong",0)->plaintext);
    //$manuf = $html->find("/[@id='main']/div[1]/div[2]/div[3]/table/tbody/tr[1]/td[2]/strong",0)->plaintext;
$table = $html->find("/[@id='matches_list']/",0);


$livescore = '';

            $livescore .= "<table class='match-table' cellspacing='0' cellpadding='0'>";
             $livescore .= "<tbody>";

foreach($table->find("li") as $line){
    $game = $line->find("a/span/img",0)->title;
    if(  $game == "CS:GO" or $game == "Hearthstone" or $game == "Dota 2" or $game == "StarCraft II" or $game == "League of Legends"){

        $opp1 = $line->find("span.opp1",0)->plaintext;
        $opp2 = $line->find("span.opp2",0)->plaintext;
        $score = $line->find("span.score",0)->plaintext;



            $livescore .= "<tr class='margin-tr'>";
            $livescore .= "<td class='match-icon'>IC</td>";
            $livescore .= "<td class='match-home'>". $opp1 ."</td>";
            $livescore .= "<td class='match-score'>". $score ."</td>";
            $livescore .= "<td class='match-away'>". $opp2 ."</td>";
            $livescore .= "<td class='match-time'>22:00</td>";
            $livescore .= "</tr>";

        }

    }

                    $livescore .= "</tbody>";
            $livescore .= "</table>";



    return $livescore;
}


add_shortcode('getGames', 'getGames');

1 个答案:

答案 0 :(得分:0)

根据Shortcode API

  

短代码名称应全部小写并使用所有字母,但数字和下划线也应该正常工作。要小心使用连字符(破折号),最好不要使用连字符。

将您的电话改为:

add_shortcode('games', 'getGames');

然后通过以下方式调用它:

[games]