这可能是一个简单的问题但是我有一个用于提取url参数的短代码。然后它将它们包装在HTML标记中并返回。我遇到的问题是当客户端将短代码放入wordpress编辑器并将其居中时,页面上返回的值是左对齐的。当我检查元素时,我看到原始居中的<p>
标记之外的返回值。
<p style="text-align: center;"></p>
<h2>Thank You for Your Request</h2>
<p>We will be in touch shortly to schedule your briefing</p>
<p></p>
这是功能:
add_shortcode('return-url-params', 'get_params');
function get_params() {
$str = '';
$str .= '<h2>' . $_GET['thxheadline'] . '</h2>';
$str .= '<p>' . $_GET['thxtext'] . '</p>';
return urldecode($str);
}
如何在居中的
标签内返回短代码值?
答案 0 :(得分:1)
这里的问题是WordPress将您的短代码包装在段落标记中,以便集中对齐您的短代码。
这意味着在页面上,您的<h2>
和<p>
元素是所述段落的子元素,这是无效的标记。现在,浏览器会错误地解析您的页面,并导致您在检查元素时看到的内容。 (请注意,如果您要查看页面源代码,则会看到无效的标记)。
您最好的选择是为您的客户提供通过短代码参数更改对齐的功能。如果您的短代码功能如下所示:
add_shortcode('return-url-params', 'get_params');
function get_params( $atts ) {
$atts = shortcode_atts( array(
'align' => 'inherit',
), $atts, 'return-url-params' );
$str = '';
$str .= '<div style="text-align: ' . $atts['align'] . '">';
$str .= '<h2>' . $_GET['thxheadline'] . '</h2>';
$str .= '<p>' . $_GET['thxtext'] . '</p>';
$str .= '</div>';
return urldecode($str);
}
然后您的客户可以像这样使用短代码:
[return-url-params align="center"]
使用'align'参数获取任何CSS text-align
属性。
您还可以使用该参数为包含<div>
的特定CSS类提供样式并应用样式,但这只是为了给您一个想法。
答案 1 :(得分:0)
每次都会附加段落标记,因为您无法在段落标记内使用标记标记。 您可以通过以下代码获得所需的结果。
add_shortcode('return-url-params', 'get_params');
function get_params() {
$str = '<div style="text-align: center;">';
$str .= '<h2>Header</h2>';
$str .= '<p>paragraph</p>';
$str .= '</div>';
return urldecode($str);
}