2015-03-02 2 views
2

Я написал простой плагин wordpress, который показывает значок рядом со ссылкой на странице wordpress/post content.Показать favicon только для первой ссылки с этого хоста

add_filter ('the_content', 'favicon_content_filter', 20);

/** 
* Add a icon to the beginning of every post page. 
*/ 
function favicon_content_filter($content) { 
    $content = preg_replace('/<a href="(.+)">/', '<img src="http://www.google.com/s2/favicons?domain=$1" /> <a href="$1">', $content); 
    return $content; 
} 

Теперь клиент хочет иметь эту фавиконка отображается рядом с ссылкой только в первый раз, когда эта конкретная ссылка отображается на странице.

Я застрял с этим в течение нескольких часов. Очевидно, я не так хорош с регулярным выражением. Любая помощь будет высоко оценен

ответ

1

Вы можете использовать strpos функцию:

/** 
* Add a icon to the beginning of every post page. 
*/ 
function favicon_content_filter($content) { 
    if (strpos($content, "http://www.google.com/s2/favicons") === false) { 
     $content = preg_replace('~<a href="([^"]+)">~', '<img src="http://www.google.com/s2/favicons?domain=$1" /> <a href="$1">', $content); 
    } 
    return $content; 
} 

Это заменит $content только если /s2/favicons не там уже.

+0

Я просто попробовал это, но он по-прежнему показывает значок для каждой ссылки, снова и снова –

+0

ok попробуйте обновленный код – anubhava

+0

Знайте о кебе favicon. – lmarcelocc

Смежные вопросы