<p> 标签外的 Wordpress 简码

Wordpress shortcode outside <p> tags

这可能是一个简单的问题,但我有一个提取 url 参数的简码。然后将它们包装在 HTML 标签和 return 中。我遇到的问题是,当客户端将短代码放入 wordpress 编辑器并将其居中时,页面上的 returned 值左对齐。当我检查元素时,我看到原始居中 <p> 标签之外的 returned 值。

<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);

}

如何 return 居中

标签内的简码值?

每次都会附加段落标签,因为段落标签内不能使用header标签。 您可以通过以下代码实现您想要的结果。

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);

}

这里的问题是 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 class 并对其应用样式,但这只是给您一个想法。