首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >WordPress短代码的一种限制

WordPress短代码的一种限制
EN

Stack Overflow用户
提问于 2013-12-23 16:12:04
回答 1查看 116关注 0票数 0

我的职能是:

代码语言:javascript
运行
复制
function movie_cast( $atts, $content = null ) {
    $url = '/?s=';
    $str = '';
    foreach (explode(", ",$content) as $content)
{
        if ($str != "") $str .= ", ";
        $str .= '<a href=\'' . $url . $content . '\'>' . $content . '</a>';
}
    return '<div class="movie_cast" style="display: block; margin-left: 180px;"><strong>Cast: </strong>'.$str.'<br><br></div>';
}
add_shortcode( 'movie_cast', 'movie_cast' );

这是中断post的短代码(post为空):

movie_castJames Marsden、Joel Rogers、Will Ferrell、Christina Applegate、Paul Rudd、Steve Carell、David Koechner、Fred Willard、Bill Kurtis、卢克·威尔逊、文斯·沃恩、迪伦·贝克、利亚姆·尼森、哈里森·福特、史蒂夫·库尔特、萨查·巴伦·科恩、金纳利、吉姆·凯里、约翰·C·雷利、肯·维格、沃伦·扬、阿维尔·波尔、柯尔斯滕·邓斯特、沙德·鲁佩、艾米·波勒勒、迈根·古德、妮可·基德曼、劳森、布莱恩·F·金、威尔伯·菲茨杰拉德、蒂娜·菲纳·菲尔德、罗恩·皮瑟、克兰尼·韦斯特、莎拉·贝耶、迪安·斯派尔、拉斐尔·拉斐尔、斯特曼·斯特曼、斯特曼·斯坦德斯、约翰·马斯登·马斯登、乔尔·马斯登凯特·诺林( Kate Nowlin )、加里·周( Gary Week)、克里斯·盖萨德( Chris Gethard )、查尔斯·凯西( Charles Casey )、戴恩·达文波特( Dane Davenport )、劳伦·亨内伯格( Lauren Henneberg )、维克多·盖奇( Victor Gage )、尼可拉斯·沃尔夫( Nickolas Wolf )、克拉克·萨鲁洛( Clark Sarullo )、戴夫·皮勒吉( Ken Venzke )、戴维·西尔弗曼( David Silverman )、詹姆斯·史密斯( James Smith )、兰德尔·泰勒( Randall Taylor )、犹大·纳尔逊(犹大·纳尔逊)、C.C. Ice、King、William Frasca、戴维·帕斯卡( David Pascua )、阿曼达·威廉斯( Amanda Q. Williams )、吉娜·圣地亚哥( Gina Santiago )、杰夫·马修·格洛弗( Jeff Matthew Glover )、加里·米勒( Gary Miller )、约翰·J·帕洛米诺( John J. Palomino )、克里斯托弗·佩恩( Christopher Payne )、南希·桑德斯( Nancy Sandsand)、唐·桑德斯( Don Sandlin )、雷切尔·阿库娜( Rachel Acuna )、保罗·查佩尔( Paul Chappell )、弗雷德·加勒( Fred Galle )、戴恩·哈米尔(Don)、詹妮弗·盖利克( Gullick )、罗斯·休斯( Rose Hughes )、娜塔莉·泰勒( Dave Taylor )、西姆、罗布·通斯托尔( Rob Tunstall )、加里·斯特劳特( Jennifer F. Stapleford )、罗伯特·尼克松( Robert )、尼克松·诺林(David Itchkawitz、Jessica Brown、Courtney Patterson、Alberto David Mercado、Joseph Nelson、Olivia奥斯汀、Kevin Tomkins、Colin Lacativa、Matt Amick、Lane Gamble、Zeb奥斯汀、Larry A. Brewer、Ellie Decker、Lisa Finlayson、Daniel T. Martin、Courtney Pennington、Brandi Quinn、Paul Vincent Rapisarda/影视演员

如果我在短代码中写的演员少一些,它的工作效果就比。这个限制是从哪里来的?我怎么才能解决这个问题?

更新:正如评论中所建议的那样,我试图响应$str,这似乎是可行的。此函数适用于被逗号除以的无限字符:

代码语言:javascript
运行
复制
function movie_cast( $atts, $content = null ) {
    $url = '/?s=';
    $str = '';
    foreach (explode(", ",$content) as $content)
{
        if ($str != "") $str .= ", ";
        $str .= '<a href=\'' . $url . $content . '\'>' . $content . '</a>';
}
    echo $str;
}
add_shortcode( 'movie_cast', 'movie_cast' );
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-12-23 18:30:15

正如评论中所讨论的,当您返回结果时,这似乎是WordPress的一个问题-- 91很好,92不是。我的建议是重写循环,这样它最多只能执行91次迭代:

代码语言:javascript
运行
复制
function movie_cast( $atts, $content = null ) {
    $url = '/?s=';
    $str = '';

    $output = array();
    $count = 0;

    foreach (explode(", ",$content) as $content) {
        $count++;
        $output[] = "<a href='" . $url . $content . "'>" . $content . "</a>";
        if ($count == 91) {
            break;
        }
    }

    return implode(", ", $output);
}

我对代码做了一些修改--它将所有内容存储在数组中,因此不需要每次检查并分别添加逗号;相反,它会在数组末尾内爆数组以生成字符串。

我还交换了字符串,以便用双引号分隔,这样就减少了转义所需的次数。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20747135

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档