Как удалить скрытую ссылку base64?
На страницу 1, 2  След.
Новая тема Написать ответ
# Пн Сен 08, 2014 3:41 pmБаяс Зарег.: 25.08.2014 ; Сообщ.: 35Ответить с цитатой
Здравствуйте, уважаемые форумчане! Столкнулся с проблемой и нужна ваша помощь, может поможете. Дело в том, что недавно, совершенно случайно обнаружил на блоге (Wordpress) вот такую ссылку:

<img title="Read More..." src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" alt="" data-wp-more="" data-mce-resize="false" data-mce-placeholder="1" />

В текстовом редакторе в режиме "Визуально" убрал тег "More" и перешел в режим "Текст" и обнаружил искомую ссылку. Если удалить ее и поставить тег "More", то она появляется снова. Другими словами, удалить ее невозможно. И скрыта она именно под этим тегом, визуально ее не видно. Откуда, с какого файла она генерируется и как мне избавиться от этой бяки?
# Пн Сен 08, 2014 4:21 pmYabuti Зарег.: 28.11.2008 ; Сообщ.: 16263Ответить с цитатой
Тег <img> это не линк, смотрите тег <a href="">.
data:image/gif говорит о том, что это картинка в виде кода, так иногда их делают в шаблонах.
Смотрите в файле functions.php код для read_more или, если там нет, то в index.php или файлах, вроде include и т.д.
# Пн Сен 08, 2014 7:37 pmЯ Джин Зарег.: 19.03.2012 ; Сообщ.: 186Ответить с цитатой
Декодируй base64, смени урл (на любой свой) и закодируй обратно r5

Это самое простое, потом можешь искать и кавырять коды столько сколько нужно Cool
# Вт Сен 09, 2014 2:59 amБаяс Зарег.: 25.08.2014 ; Сообщ.: 35Ответить с цитатой
Yabuti писал(а):
Тег <img> это не линк, смотрите тег <a href="">.
data:image/gif говорит о том, что это картинка в виде кода, так иногда их делают в шаблонах.
Смотрите в файле functions.php код для read_more или, если там нет, то в index.php или файлах, вроде include и т.д.



То есть, насколько я понял, тег "More" выводится как картинка и никакого криминала в этом нет. Это не ссылка на внешний ресурс и можно больше не беспокоиться?
# Вт Сен 09, 2014 7:35 amYabuti Зарег.: 28.11.2008 ; Сообщ.: 16263Ответить с цитатой
Баяс, лучше удалить или изменить, т.к. может и какая-то хитрая бяка быть, в шаблонах бывают и в картинках код размещают. А код в base64 - это "GIF89a!,D;", т.е. стандартное начало gif-файла.
Удаляйте или закомментируйте вместе с обрамляющим картинку <a href="">, т.к. если удалить только картинку, то пустой линк все равно остается.
# Ср Сен 10, 2014 3:45 amБаяс Зарег.: 25.08.2014 ; Сообщ.: 35Ответить с цитатой
* @param string $more_link_text Optional. Content for when there is more text.
* @param bool $strip_teaser Optional. Strip teaser content before the more text. Default is false.
*/
function the_content( $more_link_text = null, $strip_teaser = false) {
$content = get_the_content( $more_link_text, $strip_teaser );

/**
* Filter the post content.
*
* @since 0.71
*
* @param string $content Content of the current post.
*/
$content = apply_filters( 'the_content', $content );
$content = str_replace( ']]>', ']]&gt;', $content );
echo $content;
}

/**
* Retrieve the post content.
*
* @since 0.71
*
* @param string $more_link_text Optional. Content for when there is more text.
* @param bool $stripteaser Optional. Strip teaser content before the more text. Default is false.
* @return string
*/
function get_the_content( $more_link_text = null, $strip_teaser = false ) {
global $page, $more, $preview, $pages, $multipage;

$post = get_post();

if ( null === $more_link_text )
$more_link_text = __( '(more&hellip;)' );

$output = '';
$has_teaser = false;

// If post password required and it doesn't match the cookie.
if ( post_password_required( $post ) )
return get_the_password_form( $post );

if ( $page > count( $pages ) ) // if the requested page doesn't exist
$page = count( $pages ); // give them the highest numbered page that DOES exist

$content = $pages[$page - 1];
if ( preg_match( '/<!--more(.*?)?-->/', $content, $matches ) ) {
$content = explode( $matches[0], $content, 2 );
if ( ! empty( $matches[1] ) && ! empty( $more_link_text ) )
$more_link_text = strip_tags( wp_kses_no_null( trim( $matches[1] ) ) );

$has_teaser = true;
} else {
$content = array( $content );
}

if ( false !== strpos( $post->post_content, '<!--noteaser-->' ) && ( ! $multipage || $page == 1 ) )
$strip_teaser = true;

$teaser = $content[0];

if ( $more && $strip_teaser && $has_teaser )
$teaser = '';

$output .= $teaser;

if ( count( $content ) > 1 ) {
if ( $more ) {
$output .= '<span id="more-' . $post->ID . '"></span>' . $content[1];
} else {
if ( ! empty( $more_link_text ) )

/**
* Filter the Read More link text.
*
* @since 2.8.0
*
* @param string $more_link_element Read More link element.
* @param string $more_link_text Read More text.
*/
$output .= apply_filters( 'the_content_more_link', ' <a href="' . get_permalink() . "#more-{$post->ID}\" class=\"more-link\">$more_link_text</a>", $more_link_text );
$output = force_balance_tags( $output );
}
}


Попробовал поудалять кое-что, сайт перестает работать. Ткните носом, будьте добры.
# Ср Сен 10, 2014 8:36 amYabuti Зарег.: 28.11.2008 ; Сообщ.: 16263Ответить с цитатой
Вот это удалить:
Код:
<a href="' . get_permalink() . "#more-{$post->ID}\" class=\"more-link\">$more_link_text</a>

# Ср Сен 10, 2014 10:57 amБаяс Зарег.: 25.08.2014 ; Сообщ.: 35Ответить с цитатой
Yabuti писал(а):
Вот это удалить:
Код:
<a href="' . get_permalink() . "#more-{$post->ID}\" class=\"more-link\">$more_link_text</a>




Если удалить эту строку, сайт перестает работать, отдает ошибку 500 ( внутренняя ошибка сервера ). После того как восстанавливаю, все ОК. Что бы это значило?
# Ср Сен 10, 2014 2:16 pmYabuti Зарег.: 28.11.2008 ; Сообщ.: 16263Ответить с цитатой
Баяс, а скобки и апострофы я не заметил, не очень хороший код, все вперемешку.
Замените строку
Код:
$output .= apply_filters( 'the_content_more_link', ' <a href="' . get_permalink() . "#more-{$post->ID}\" class=\"more-link\">$more_link_text</a>", $more_link_text );


на такую строку
Код:
$output .= apply_filters('the_content_more_link', '', $more_link_text);


Будет выдавать ошибку?
# Ср Сен 10, 2014 10:16 pmБаяс Зарег.: 25.08.2014 ; Сообщ.: 35Ответить с цитатой
Yabuti писал(а):
Баяс, а скобки и апострофы я не заметил, не очень хороший код, все вперемешку.
Замените строку
Код:
$output .= apply_filters( 'the_content_more_link', ' <a href="' . get_permalink() . "#more-{$post->ID}\" class=\"more-link\">$more_link_text</a>", $more_link_text );


на такую строку
Код:
$output .= apply_filters('the_content_more_link', '', $more_link_text);


Будет выдавать ошибку?




Yabuti, заменил, ошибки нет, но код картинки на месте, то есть все так же, как и было. Может ли ссылка дублироваться в другом файле?
# Ср Сен 10, 2014 10:35 pmawm543322445 Зарег.: 31.05.2012 ; Сообщ.: 7303Ответить с цитатой
код нужно постить в тегах вот так
Код:
* @param string $more_link_text Optional. Content for when there is more text.
* @param bool $strip_teaser Optional. Strip teaser content before the more text. Default is false.
*/
function the_content( $more_link_text = null, $strip_teaser = false) {
$content = get_the_content( $more_link_text, $strip_teaser );

/**
* Filter the post content.
*
* @since 0.71
*
* @param string $content Content of the current post.
*/
$content = apply_filters( 'the_content', $content );
$content = str_replace( ']]>', ']]&gt;', $content );
echo $content;
}

/**
* Retrieve the post content.
*
* @since 0.71
*
* @param string $more_link_text Optional. Content for when there is more text.
* @param bool $stripteaser Optional. Strip teaser content before the more text. Default is false.
* @return string
*/
function get_the_content( $more_link_text = null, $strip_teaser = false ) {
global $page, $more, $preview, $pages, $multipage;

$post = get_post();

if ( null === $more_link_text )
$more_link_text = __( '(more&hellip;)' );

$output = '';
$has_teaser = false;

// If post password required and it doesn't match the cookie.
if ( post_password_required( $post ) )
return get_the_password_form( $post );

if ( $page > count( $pages ) ) // if the requested page doesn't exist
$page = count( $pages ); // give them the highest numbered page that DOES exist

$content = $pages[$page - 1];
if ( preg_match( '/<!--more(.*?)?-->/', $content, $matches ) ) {
$content = explode( $matches[0], $content, 2 );
if ( ! empty( $matches[1] ) && ! empty( $more_link_text ) )
$more_link_text = strip_tags( wp_kses_no_null( trim( $matches[1] ) ) );

$has_teaser = true;
} else {
$content = array( $content );
}

if ( false !== strpos( $post->post_content, '<!--noteaser-->' ) && ( ! $multipage || $page == 1 ) )
$strip_teaser = true;

$teaser = $content[0];

if ( $more && $strip_teaser && $has_teaser )
$teaser = '';

$output .= $teaser;

if ( count( $content ) > 1 ) {
if ( $more ) {
$output .= '<span id="more-' . $post->ID . '"></span>' . $content[1];
} else {
if ( ! empty( $more_link_text ) )

/**
* Filter the Read More link text.
*
* @since 2.8.0
*
* @param string $more_link_element Read More link element.
* @param string $more_link_text Read More text.
*/
$output .= apply_filters( 'the_content_more_link', ' <a href="' . get_permalink() . "#more-{$post->ID}\" class=\"more-link\">$more_link_text</a>", $more_link_text );
$output = force_balance_tags( $output );
}
}



PS: найди новый шаб :oldher:
# Чт Сен 11, 2014 1:42 amYabuti Зарег.: 28.11.2008 ; Сообщ.: 16263Ответить с цитатой
А кэш не включен?
Или попробуйте новую запись создать, будет ли у нее такая кнопка.
# Чт Сен 11, 2014 6:02 amБаяс Зарег.: 25.08.2014 ; Сообщ.: 35Ответить с цитатой
Yabuti писал(а):
А кэш не включен?
Или попробуйте новую запись создать, будет ли у нее такая кнопка.



Вчера добавил новую статью на блог, все было так же, как и раньше. Обнулял кеш и на блоге, и в браузере. Тут один товарищ вчера мне сказал вот что: для того чтобы уменьшить число запросов к серверу, мелкие картинки на сайте выводят с помощью кода base64. И все это реализуется через ccs. То есть вместо трех запросов (html + css + изображение), получаем всего два запроса (html + css). Вроде все логично и разумно, хочется ему верить. А вы что думаете по этому поводу?
# Чт Сен 11, 2014 12:16 pmYabuti Зарег.: 28.11.2008 ; Сообщ.: 16263Ответить с цитатой
Так и есть, в CSS есть код этой картинки в виде кода.
Но непонятный момент с тем, что линк Read More все равно выводится.
Посмотрите еще в плагинах, может там есть плагин для автоматического создания Read More к записям на Главной и в других файлах темы поищите тег с Read More.
# Пт Сен 12, 2014 3:55 pmБаяс Зарег.: 25.08.2014 ; Сообщ.: 35Ответить с цитатой
Yabuti писал(а):
Так и есть, в CSS есть код этой картинки в виде кода.
Но непонятный момент с тем, что линк Read More все равно выводится.
Посмотрите еще в плагинах, может там есть плагин для автоматического создания Read More к записям на Главной и в других файлах темы поищите тег с Read More.



Поискал с помощью "Total Commander", "Read More" встречается в 12 файлах. Например, в файле wp-includes есть интересующая нас запись:

// Replace Read More/Next Page tags with images
editor.on( 'BeforeSetContent', function( e ) {
if ( e.content ) {
if ( e.content.indexOf( '<!--more' ) !== -1 ) {
e.content = e.content.replace( /<!--more(.*?)-->/g, function( match, moretext ) {
return '<img src="' + tinymce.Env.transparentSrc + '" data-wp-more="' + moretext + '" ' +
'class="wp-more-tag mce-wp-more" title="Read More..." data-mce-resize="false" data-mce-placeholder="1" />';
});
}
Новая тема Написать ответ    ГЛАВНАЯ ~ ТЕХНИЧЕСКИЕ ВОПРОСЫ
 На страницу 1, 2  След.
Любое использование материалов, размещенных на ArmadaBoard.com, без разрешения владельцев ArmadaBoard.com запрещено.