我正在为客户端网站创建一个短代码,它应该显示一个图像和一句话(主要在页面底部,但基本上是在客户端希望插入所述图像/话的任何地方)。图像将保持不变,并将有一个“标准的说法”,但客户希望有可能改变每页的说法。
我有以下工作代码,在使用[call_to_action] 短代码:
<?php
function shortcode_call_to_action() {
$stylesheetdir = get_bloginfo(\'stylesheet_directory\');
return \'<div id="call_to_action"> <img src="\' . $stylesheetdir . \'/images/call_to_action.jpg" />
<p>Lorem ipsum dolor sit amet, jus ludus dignissim delenit incassum adipiscing, letalis ymo loquor populus sed saepius. Quod regula vulputate eum nulla, feugait foras ex ideo. </p>\' ;
}
add_shortcode(\'call_to_action\', \'shortcode_call_to_action\');
?>
不知何故,我想做的是在那里的某个地方添加一个属性,以便客户端可以通过在短代码中更改call\\u to\\u操作文本来更改/覆盖它:
[call_to_action]This would be the new overwritten text that would show up if inserted here.[/call_to_action]
我还希望它尊重可能使用的任何html(段落和/或分隔符)标记。如有必要,愿意重写以前的函数。我是一个php noob,所以我似乎无法理解这一点。非常感谢您的帮助。谢谢SE!
最合适的回答,由SO网友:fuxia 整理而成
shortcode函数的第二个参数是内容。因此,重写函数:
function shortcode_call_to_action( $attributes = NULL, $content = \'\' )
{
$stylesheetdir = get_bloginfo(\'stylesheet_directory\');
if ( \'\' === $content )
{ // use a default text if there is no content
$content = \'default text\';
}
return "<div id=\'call_to_action\'> <img src=\'$stylesheetdir/images/call_to_action.jpg\' alt=\'\' />
<p>$content</p>";
}
如果用户写入…
[call_to_action]Custom text[/call_to_action]
…参数
$content
在您的函数中将设置为该文本。
有关更多详细信息,请参阅Shortcode API.