使用html内部的短码功能

时间:2022-01-30 作者:vyperlook

我知道我不擅长编码,但我尝试了在互联网上找到的任何东西,最终我得到了这个结果,这并没有给出一个错误,而且当在帖子中使用快捷码[我的播放列表]时,只有一部分显示“my\\u playlist”;聆听来自PostName的满分歌曲播放列表;

你能告诉我我做错了什么吗?我应该如何在\\u title()之后生成其余的html;陈列非常感谢你


// function that runs when shortcode is called
function wpb_playlist_shortcode() { 
 
// Things that you want to do. 
$string .= \'<center>\'  . _e(\' Listen to the full score songs playlist from\', \'wpml_theme\') . \'<strong>\' . the_title();  \' </strong> 
<br/>
<span class="playlist"><img class="middle" src="https://example.com/images/play-this-song.png" /> YouTube</span> <br/> <span class="playlist2"><img class="middle" src="https://exampl.com/images/play-this-song.png" /> Deezer</span> <br/><span class="playlist3"><img class="middle" src="https://exampl.com/images/play-this-song.png" /> Spotify</span></center>\'; 
 
// Output needs to be return
return $string;
}
// Register shortcode
add_shortcode(\'my_playlist\', \'wpb_playlist_shortcode\'); 
 

2 个回复
最合适的回答,由SO网友:Tom J Nowell 整理而成

有几件事你需要知道,之后问题就会变得很明显:

您可以使用. 例如\'hello\' . \'world\' 与相同\'helloworld\'

  • 您以;, 这是告诉PHP您已经说完了一些内容,接下来您将要说一些新的内容,例如句子中的句号,短代码必须以字符串形式返回其内容,您不能使用echo 或直接输出到浏览器,而您不能使用. 将它们附加到字符串。the_title 是这些函数之一,你不必把它们全部放在一行上,这会使阅读变得非常困难。当它说问题在5号线上,但5号线上有很多东西时,你会怎么做?\'\'\\_(ツ)_/“这就像问路,只是被告知”;“在北方某处”
  • $string .= \'stuff\'; 是的缩写$string = $string . \'stuff\';$string, 您要求PHP向其添加内容,但它是从哪里来的?什么是$string? 你需要给事物初始值。PHP即将推出;wtf是$字符串,他们只是要求我们向它添加一些东西,但我从来没有听说过,我将创建一个新变量,并假装它是"" 并在PHP错误日志中添加注释,希望这不会破坏任何内容。想想看,就像被要求给玛丽送咖啡一样,玛丽是谁?您从未被介绍给Mary,PHP基本上与您在现场虚构一个朋友Mary是一样的,所以它仍然有意义

    上面的要点应该清楚地说明出了什么问题以及如何修复您的短代码,但对于将来,这里有一个更简单的方法,输出缓冲区。

    function myshortcode( $atts ) : string {
        ob_start();
        ?>
        <p>Your HTML goes here, and it\'ll get intercepted and returned as a string variable when `ob_get_clean` is called.</p>
        <?php
        return ob_get_clean();
    }
    
    现在,您可以在短代码中使用与普通PHP模板文件相同的方式,它甚至具有类型提示,因此如果您返回字符串以外的内容,它会抱怨并准确地告诉您出了什么问题。

  • SO网友:Cyclonecode

    您的代码包含几个错误,应在下面解决这些错误:

    function wpb_playlist_shortcode() { 
      // Assign to the variable and change from the_title() ; to get_the_title() .
      // since we need to concatenate the string
      // Also, we need to use __() instead of _e() since the later will echo instead of returning the output
      $string = \'<center>\'  . _e(\' Listen to the full score songs playlist from\', \'wpml_theme\') . \'<strong>\' . get_the_title() .  \' </strong> 
                 <br/><span class="playlist"><img class="middle" src="https://example.com/images/play-this-song.png" /> YouTube</span> <br/> <span class="playlist2"><img class="middle" src="https://exampl.com/images/play-this-song.png" /> Deezer</span> <br/><span class="playlist3"><img class="middle" src="https://exampl.com/images/play-this-song.png" /> Spotify</span></center>\'; 
    
       // return the output
       return $string;
    }
    

    相关推荐

    Custom post type shortcode

    我创建了一个自定义的帖子类型快捷码作为滑块。我的滑块图像在背景图像中显示为特色图像。但我的幻灯片中没有显示特色图像。这是我的代码:<?php add_shortcode( \'slickslider\', \'slider_shortcodes_post_type\' ); function slider_shortcodes_post_type(){ $args = array( \'post_type\' => \'slid