php 获取WordPress页面标题并作为URL参数传递给iframe

szqfcxe2  于 2023-03-16  发布在  PHP
关注(0)|答案(1)|浏览(140)

我们使用的是通过WP页面模板嵌入到WordPress站点某些页面上的Pardot表单,我有一些从主窗口传递到iframe的URL参数,因此它们可以在Pardot中捕获,这是有效的。
但是我还需要得到WordPress页面标题(不是完整的 metatitle标签)并将其传递给iframe。我想把它作为一个参数附加到URL的末尾,就像其他的一样,但我不确定如何最好地做到这一点。
这是当前在WP页面模板中的代码:

<script type="text/javascript">
        var form = 'https://go.sample.com/XXX/YYY/';
        var params = window.location.search;
        var thisScript = document.scripts[document.scripts.length - 1];
        var iframe = document.createElement('iframe');

        iframe.setAttribute('src', form + params);
        iframe.setAttribute('width', '100%');
        iframe.setAttribute('height', 700);
        iframe.setAttribute('type', 'text/html');
        iframe.setAttribute('frameborder', 0);
        iframe.setAttribute('allowTransparency', 'true');
        iframe.setAttribute('id', 'formiFrame');
        iframe.style.border = '0';

        thisScript.parentElement.replaceChild(iframe, thisScript);
    </script>

我怎样修改上面的代码才能得到这样的结果呢?
这是我得到的代码,是现有的URL参数工作:https://help.salesforce.com/s/articleView?id=000383147&type=1

js81xvg6

js81xvg61#

所以我可以通过添加以下代码使它工作:

var postTitle = '<?php echo urlencode(get_the_title()); ?>';
    if (params) {
        params += '&post_title=' + postTitle;
    } else {
        params = '?post_title=' + postTitle;
    }

总而言之:

<script type="text/javascript">
    var form = 'https://go.sample.com/XXX/YYY/';
    var params = window.location.search;
    var postTitle = '<?php echo urlencode(get_the_title()); ?>';
    if (params) {
        params += '&post_title=' + postTitle;
    } else {
        params = '?post_title=' + postTitle;
    }
    var thisScript = document.scripts[document.scripts.length - 1];
    var iframe = document.createElement('iframe');

    iframe.setAttribute('src', form + params);
    iframe.setAttribute('width', '100%');
    iframe.setAttribute('height', 700);
    iframe.setAttribute('type', 'text/html');
    iframe.setAttribute('frameborder', 0);
    iframe.setAttribute('allowTransparency', 'true');
    iframe.setAttribute('id', 'formiFrame');
    iframe.style.border = '0';

    thisScript.parentElement.replaceChild(iframe, thisScript);
</script>

相关问题