Подписанному не подписаться|Никаких подписок на RSS в RSS

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

В фиде предложение подписаться появляться не должно.

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

Но если вы еще выдаете краткие тексты, то обилие «Будь паинькой, сходи на RSS» на одной странице, перемежаемые малым количеством контента, будут вызывать только раздражение. В этом случае предложение должно появляться только в посте и тогда, когда его размер превышает что-то около 1000 символов.

Если вы пользуетесь макссайтовским плагином Random Text, уши которого растут из его же Ушек, то там даже есть специальные закомментаренные строки.

Т.к. функция плагина подключается к the_content (), в первом случае нужно, чтобы в случае фида ничего не менялось. Раскомментируйте:

if (is_feed()) return $content;

Если же фразы нужно отображать только в постах, уберите решетку перед:

if (!is_single()) return $content;

Собственно, ограничение на количество символов решается тоже простым условным выражением, помещаемым там же:

if (strlen($content)<1000) return $content;

Наконец, мне не нравится то, что при каждом обновлении одной и той же записи, надпись меняется — а это значит, что страница тоже меняется. А ведь можно привести псевдослучайное число к ID поста, чтобы надпись менялась, но в разных постах. Если речь идет о тех же рсс-ушках (я лично использую встроенный в тему код, более напоминающий плагин hello dolly), то нам надо убрать вот это:

if ( strlen($s) > 0 ) {
	$s = array_unique( explode("\n", $s) );
	srand( (double) microtime() * 1000000 );
	$s = $s[array_rand($s, 1)];
	}

чтобы «случайная» надпись выбиралась по ID поста, но учитывало количество возможных фраз:

if ( strlen($s) > 0 ) {
	$s = array_unique( explode("\n", $s) );
	$s = $s[ (get_the_id())%(count($lyrics)) ];
	}

Капитан Очевидность снова был с вами! Самое классное в таких пустяках — что большинство плюют на них. А ведь это не требует ни сакрального знания PHP, ни мозга большого объема, чтобы догадаться не предлагать подписку тем, кто и так уже подписан. Кхм-кхм тоже был бы в шоке.

Есть что сказать? Подписка на комментарии
какие-то из следующих трех полей можно оставить пустыми


нет тегам!!! **эмоция**, __ирония__, >цитата, {[код]}