在整个网站上添加特定单词的URL

时间:2014-09-23 11:09:37

标签: javascript wordpress wordpress-plugin internal-link

我希望能够将我选择的任何单词链接到特定的网址,例如: 我希望“山羊”这个词在整个网站上链接到“http://goat.com”。因此,所有“山羊”/ s将链接到整个网站上的该URL。

我正在使用wordpress,我还没有找到一个插件来执行此操作。如果我能得到解决方案,我很可能会为此功能创建一个插件。

我知道如何在一个页面上定位一个单词。但我希望它能覆盖所有页面和这些页面中的所有单词(我为此使用了JavaScript)。

3 个答案:

答案 0 :(得分:4)

这样的事可能适合你。

function replaceWithUri(textToReplace, element){
    element.innerHTML = element.innerHTML.replace(textToReplace, '<a href="http://www.' + textToReplace + '.com" >' + textToReplace + '</a>');
}

replaceWithUri('goat', document.getElementsByTagName('body')[0]);

答案 1 :(得分:1)

这是一个糟糕的解决方案,但它总比没有好:

我找到了一些代码here,它在整个页面中搜索一个世界,所以我复制粘贴并修改它。

replaceWord变量不能包含与word相同的字符串,否则它将无限循环。

&#13;
&#13;
var word = " goat",
    replaceWord = " <a href = 'http://goat.com'>goat</a>",
    queue = [document.body],
    curr
;
while (curr = queue.pop()) {
    if (!curr.textContent.match(word)) continue;
    for (var i = 0; i < curr.childNodes.length; ++i) {
        switch (curr.childNodes[i].nodeType) {
            case Node.TEXT_NODE : // 3
                if (curr.childNodes[i].textContent.match(word)) {
                    curr.innerHTML = curr.innerHTML.replace(word,replaceWord);
                }
                break;
            case Node.ELEMENT_NODE : // 1
                queue.push(curr.childNodes[i]);
                break;
        }
    }
}
&#13;
Hello goat

<div>Look a goat</div>
&#13;
&#13;
&#13;

答案 2 :(得分:1)

这可能有点资源,而且replaceWord不能包含与word相同的字符串,否则它将永远循环。

&#13;
&#13;
document.onload = function() {
    var word = " goat",
        replaceWord = " <a href = 'http://goat.com'>goat</a>";

    while(document.body.innerHTML.indexOf(word) !== -1) {
        document.body.innerHTML = document.body.innerHTML.replace(word,replaceWord);
    }
}
&#13;
Hello goat

<div>Look a goat</div>
&#13;
&#13;
&#13;