2

这可能是一个简单的问题,但我有一个提取 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);

}

如何在居中返回短代码的值

标签?

4

2 回答 2

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' 参数采用任何CSStext-align属性。

您也可以使用该参数来提供包含<div>特定 CSS 类的内容并对其应用样式,但这只是为了给您一个想法。

于 2018-01-31T13:52:39.503 回答
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);

}
于 2018-01-31T04:28:48.940 回答