Получить текущий url с помощью javascript?

Дополнительные HTML теги в редакторе

По умолчанию, редактор WordPress не позволяет HTML теги, которые не совместимы со стандартом XHTML 1.0. Тем не менее, представленный ниже код заставит редактор поддерживать больше тегов. Вы можете вставить фрагмент кода в файл functions.php вашей темы, сохранить его, и функция будет работать.

function fb_change_mce_options($initArray) {
	// Comma separated string od extendes tags
	// Command separated string of extended elements
	$ext = 'pre,iframe';
	if ( isset( $initArray ) ) {
	$initArray .= ',' . $ext;
	} else {
		$initArray = $ext;
	}

	// maybe; set tiny paramter verify_html
	//$initArray = false;
	return $initArray;
}
add_filter('tiny_mce_before_init', 'fb_change_mce_options');

Способ №3 add_query_arg

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

Его суть проста, добавляется в нужное для вас место небольшой код:

<?php			
global $wp;
$current_url = add_query_arg( $wp->query_string, '', home_url( $wp->request ) );
echo $current_url;
?>	

Сначала вызывается глобальная переменная, после создается новая переменная и выводится. Новая переменная задается функцией add_query_arg(). Данная функция добавляет заданные параметры GET запроса в текущий или указанный URL. В нашем случаи в текущий. Как вы понимаете тут есть текущая ссылка но к ней добавляется новый параметр запроса.

Предположим, ваша текущая страница имеет ссылку http://site.com/page_name.html, то данный метод выведет ссылку с запросом — http://site.com/page_name.html?name=page_name. Это не странно, потому как задан параметр — $wp->query_string. Его конечно же можно удалить, но тогда отпадает смысл в использовании add_query_arg(). Это меня и привело к тому, чтобы переделать данный метод и получить 4 способ.

Отображение номера для каждой записи

Вы можете отображать возрастающий номер каждого поста, и сделать это достаточно просто. Сначала вставьте следующую функцию в ваш файл functions.php:

function updateNumbers() {
    global $wpdb;
    $querystr = "SELECT $wpdb->posts.* FROM $wpdb->posts WHERE $wpdb->posts.post_status = 'publish' AND $wpdb->posts.post_type = 'post' ";
    $pageposts = $wpdb->get_results($querystr, OBJECT);
    $counts = 0 ;
    if ($pageposts):
    foreach ($pageposts as $post):
    setup_postdata($post);
    $counts++;
    add_post_meta($post->ID, 'incr_number', $counts, true);
    update_post_meta($post->ID, 'incr_number', $counts);
    endforeach;
    endif;
}

add_action ( 'publish_post', 'updateNumbers' );
add_action ( 'deleted_post', 'updateNumbers' );
add_action ( 'edit_post', 'updateNumbers' );

Как только вы закончите, вы можете показать номер поста с помощью следующего кода

Обратите внимание, что его нужно использовать внутри цикла

<?php echo get_post_meta($post->ID,'incr_number',true); ?>

Стандартный цикл

<?php if (have_posts()) : ?>

	<?php while (have_posts()) : the_post(); ?>

	<div <?php post_class(); ?> id="post-<?php the_ID(); ?>">
		<h1><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h1>
		<?php the_content(); ?>
	</div>

	<?php endwhile; ?>

	<div class="navigation">
		<div class="next-posts"><?php next_posts_link(); ?></div>
		<div class="prev-posts"><?php previous_posts_link(); ?></div>
	</div>

<?php else : ?>

	<div <?php post_class(); ?> id="post-0">
		<h1>Ничего не найдено</h1>
	</div>

<?php endif; ?>

Стандартный цикл включает в себя условие () и перебор (). Условие на наличие постов, если постов нет то выводится контейнер с сообщением, что записей нет, а если записи есть то с помощью перебора отображается контент записи. Контент записи выводится стандартными тегами WordPress: , , , и так далее. Количество отображаемых записей на страницах блога/сайта можно указать в настройках панели управления в разделе «Чтение».

Все уже сказано и не раз

Хотя вся информация описана и переписана множество раз на различных ресурсах, я дам самое простое, лучшее и универсальное решение на этот вопрос. Ведь эта cms постоянно дорабатывается, улучшается, вносятся важные корректировки и, следовательно, меняются и функции вывода различного контента. Хоть и не так часто!

И соответственно, какой-то код работает на одной версии движка, а на другой просто не хочет. И по этой причине происходят баги или что еще хуже, попросту белый экран. Все же его видели хотя бы раз!?

  • WordPress: пропали картинки из постов. Виноват srcset
  • Предыдущая и следующая запись WordPress с миниатюрой, заголовком и отрывком
  • Функциональная html карта сайта WordPress без плагина

Получить адрес текущей страницы через php -> parse_url

адреса текущей страницы через php

Нам понадобится

$REQUEST_URI = $_SERVER;

Выведем с помощью echo — echo $REQUEST_URI;

/page/php/url/002_php_adres_tekuschey_stranitsyi.html

Но если после html, есть какой-то мусор, то данный вариант выведет, как пример:

/page/php/url/002_php_adres_tekuschey_stranitsyi.html?exaple=привет_мир

Теперь применим к $REQUEST_URI функцию «parse_url»

echo parse_url($REQUEST_URI, PHP_URL_PATH);
Результат:/page/php/url/002_php_adres_tekuschey_stranitsyi.html

Добавим $domen :

$domen = $_SERVER.’://’.$_SERVER;

Соберем весь код вместе, который покажет реальны адрес страницы без мусора.

$domen = $_SERVER.’://’.$_SERVER;

$REQUEST_URI = strip_tags($_SERVER);

$parse_url = parse_url($REQUEST_URI, PHP_URL_PATH);

$real_page = $domen . $parse_url;

и выведем echo $real_page;

Результат:https://dwweb.ru/page/php/url/002_php_adres_tekuschey_stranitsyi.html

Отслеживайте трафик

После начала переноса следите за тем, как изменяется трафик поисковых роботов и пользователей на новом сайте и на старом. Желательно, чтобы на новом сайте трафик рос, а на старом – уменьшался. Отслеживать действия роботов и посетителей на сайте можно с помощью Search Console и других инструментов.

Отслеживайте трафик с помощью Search Console

В Search Console есть много функций, которые позволяют следить за тем, как выполняется перенос сайта:

  • Файлы Sitemap. Отправьте нам два таких файла, ранее сохраненных при сопоставлении URL. Первоначально в файле Sitemap с новыми URL нет проиндексированных страниц, тогда как в файле Sitemap со старыми URL таких страниц много. По мере индексации новых URL число проиндексированных страниц из файла Sitemap со старыми URL упадет до нуля.
  • Отчет об индексировании. Перенос сайта отражается на диаграммах. Число проиндексированных URL на прежнем сайте упадет, а на новом – увеличится. Регулярно проверяйте, не возникло ли непредвиденных ошибок сканирования.
  • Поисковые запросы. По мере того как страницы нового сайта будут индексироваться и оцениваться системой PageRank, в отчетах по поисковым запросам станут появляться новые URL с указанием количества показов и кликов в результатах поиска.

Используйте другие инструменты для отслеживания трафика

Периодически просматривайте журналы обращений к серверам и ошибок, проверяйте результаты сканирования страниц роботом Googlebot, выявляйте URL, которые необоснованно выводят коды ошибок HTTP, и отслеживайте обычный пользовательский трафик.

Если вы установили на сайте средство веб-аналитики или если аналитику выполняет ваша система управления контентом, рекомендуем дополнительно изучать данные, полученные таким способом. Это позволит вам отмечать, как идет переориентация трафика на новый сайт. В частности, вы можете использовать сервис «Google Аналитика»

В нем доступны отчеты в режиме реального времени, а это особенно важно на начальном этапе переноса сайта. Вы должны быть готовы к тому, что трафик прежнего сайта уменьшится, а нового – увеличится

Список будущих записей

WordPress позволяет перечислять будущие посты, и чтобы получить эту возможность, просто вставьте код туда, где вы хотите отображать список будущих записей:

<div id="zukunft">
	<div id="zukunft_header"><p>Future events</p></div>
	<?php query_posts('showposts=10&post_status=future'); ?>
	<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>

	<div>
		<p><strong><?php the_title(); ?></strong><?php edit_post_link('e',' (',')'); ?><br />
		<span class="datetime"><?php the_time('j. F Y'); ?></span></p>
	</div>

	<?php endwhile; else: ?><p>No future events scheduled.</p><?php endif; ?>
</div>

Устранение неполадок при переносе сайта

Ниже перечислены некоторые распространенные ошибки при переносе сайта с изменением URL (включая смену протокола с HTTP на HTTPS). Из-за этих ошибок могут возникнуть проблемы с индексированием вашего нового сайта.

Распространенные ошибки

Директива и блокировка доступа через robots.txt

Не забудьте удалить директивы и убрать блокировку в файле robots.txt, если они были нужны только на время переноса.

На сайте может не быть файла robots.txt, но необходимо должным образом настроить отправку кода ошибки 404, если запрашивается отсутствующий файл robots.txt.

Инструкции:

  • Проверьте, не нужно ли что-то изменить в файле robots.txt на вашем сайте HTTPS.
  • Если определенных страниц нового сайта нет в результатах поиска Google, воспользуйтесь инструментом проверки URL.

Проверьте настройки переадресации со старого сайта на новый. Возможно, вы неверно указали URL.

Изучите отчет об индексировании вашего нового сайта на предмет резкого роста числа ошибок во время переноса.

После переноса Google станет чаще сканировать страницы вашего нового сайта. Причина в том, что ваш сервер будет перенаправлять со старого сайта на новый весь трафик, включая обращения нашего робота. Убедитесь, что у вашего сайта достаточно ресурсов, чтобы обрабатывать увеличенный объем трафика от Google.

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

Проверьте, правильно ли указаны URL в файлах Sitemap.

Если вы использовали Маркер для разметки старых страниц, вам нужно разметить так же и новые.

Загрузка большего количества типов файлов

По определенной причине загрузчик WordPress не позволит вам загружать некоторые типы файлов, например .tmCommand. Если вам нужно загружать эти типы файлов на ваш сайт WordPress, вот функциональный фрагмент кода, который позволит вам это сделать. Вам нужно просто вставить его в ваш файл functions.php. Вы можете также добавить больше типов файлов, добавив их в строку 4, разделив при этом символом |.

<?php
	function addUploadMimes($mimes) {
	$mimes = array_merge($mimes, array(
		'tmbundle|tmCommand|tmDragCommand|tmSnippet|tmLanguage|tmPreferences' => 'application/octet-stream'
	));
	return $mimes;
   }
?>
add_filter('upload_mimes', 'addUploadMimes');

Как получить адрес текущей страницы через php с примерами

Получить адрес текущей страницы через php! Автоматическое определение ссылки страницы в php, на которой мы находимся, ну или отображения адреса текущей страницы. Php url текущей страницы, php адрес текущей страницы, php получить адрес страницы — в общем будем заниматься именно нашей страницей! Вообще. способов реализовать выше анонсированное — просто огромное количество!

Получить адрес текущей страницы через php -> $_SERVER

И естественно, что мы должны первым делом посмотреть, что нам вернет это:

А что мы хотим получить!? :

Получим http протокол с помощью условия:

Получим название домена -> echo $_SERVER; :

Получим, все. что есть после домена -> echo $_SERVER; :

Соберем весь код вместе:

Результат получения адреса текущей страницы :

Как видим. у нас появилась дополнительная информация в ссылке.

Выведем через print_r, что у нас получает pathinfo($_SERVER)

Далее соберем ссылку после домена.

Что у нас получилось:

Ну и собственно мы можем собрать всю ссылку на текущую страницу через php используя протокол и домен, что были прописанный в первом пункте, соберем весь код вместе:

Получаем адрес текущей страницы из -> __FILE__

Вообще получить адрес текущей страницы огромное количество, на все вкусы! Как вы знаете, одна из замечательных констант это __FILE__:

Выведем её прямо здесь, через echo -> echo __FILE__; :

Получим домен таким образом:

Выведем echo $domen;

И далее путь до корневой на сревре меняем на $domen , соберем весь код вместе:

Результат ошибки вывода текущей страницы:

Получить адрес текущей страницы через php -> parse_url

Выведем с помощью echo — echo $REQUEST_URI;

Но если после html, есть какой-то мусор, то данный вариант выведет, как пример:

Теперь применим к $REQUEST_URI функцию «parse_url»

Соберем весь код вместе, который покажет реальны адрес страницы без мусора.

Получение полного URL-адреса в PHP

Я использую этот код для получения полного URL:

$actual_link = ‘http://’.$_SERVER.$_SERVER;

Проблема в том, что я использую определенные маски в .htaccess . Поэтому то, что находится в URL-адресе, не всегда является реальным путем к файлу.

Мне нужно узнать его таким же, как он отображается на панели навигации в веб-браузере, а не реальный путь к файлу на сервере.

Ответ 1

Посмотрите $_SERVER , т.е. :

$actual_link = «http://$_SERVER$_SERVER»;

Если же вы хотите поддерживать как HTTP, так и HTTPS, вы можете использовать:

$actual_link = (isset($_SERVER) && $_SERVER === ‘on’ ? «https» : «http»).»:// $_SERVER$_SERVER»;

Примечание: использование этого кода имеет последствия для безопасности . Клиент может установить HTTP_HOST и REQUEST_URI на любое произвольное значение.

Ответ 2

  • Эта функция не включает username:password полный URL или фрагмент (хэш).

  • Она не будет показывать порт 80 по умолчанию для HTTP и порт 443 для HTTPS.

  • Проверено только со схемами http и https.

  • #fragment_id н е отправляется на сервер клиента (браузера) и не будут добавлены к полному URL.

  • $_GET будет содержать только foo=bar2 для URL-адреса, например , /example?foo=bar1&foo=bar2 .

  • Некоторые CMS будут перезаписывать $_SERVER и возвращать /example?foo=bar2 URL-адрес, например , /example?foo=bar1&foo=bar2 , $_SERVER .

  • Имейте в виду, что URI = URL + URN , но из-за популярного использования URL теперь эквиваленты как URI, так и URL.

  • Удалите HTTP_X_FORWARDED_HOST, если не планируете использовать прокси или балансировщики.

  • В спецификации сказано, что Host заголовок должен содержать номер порта, если он не является портом по умолчанию.

  • $_SERVER . Любые неподдерживаемые символы кодируются браузером перед отправкой.

  • $_SERVER не всегда доступен , согласно комментариям в руководстве по PHP.

  • $_SERVER устанавливается балансировщиками и не упоминается в списке $_SERVER переменных в руководстве по PHP.

  • $_SERVER . Клиент выбирает использовать это, но сервер возвращает фактическое значение либо пусто, либо «включено».

  • $_SERVER . Сервер принимает только разрешенные номера в качестве портов.

  • $_SERVER . Сервер принимает только определенные протоколы.

  • $_SERVER . Это задается вручную в конфигурации сервера и недоступно для IPv6.

Ответ 3

function full_path() <

$s = &$_SERVER;

$ssl = (!empty($s) && $s == ‘on’) ? true : false;

$sp = strtolower($s);

$protocol = substr($sp, 0, strpos($sp, ‘/’)) . (($ssl) ? ‘s’ : »);

$port = $s;

$port = ((!$ssl && $port==’80’) || ($ssl && $port==’443′)) ? » : ‘:’.$port;

$host = isset($s) ? $s : (isset($s) ? $s : null);

$host = isset($host) ? $host : $s . $port;

$uri = $protocol.’://’.$host.$s;

$segments = explode(‘?’, $uri, 2);

$url = $segments;

return $url;

>

Мы будем очень благодарны

Похожие публикации:

Человекопонятные URL

Поисковые системы рекомендуют создавать дружественные адреса веб-страниц, по которым и пользователи, и поисковые роботы смогут судить, какая информация на этой странице находится. Например, по URL-адресу вида: www.yoursite.net/viewpage.php?page_id=23 понять это невозможно, а адрес www.yoursite.net/contact/ сразу дает представление о содержании страницы. Такие УРЛы называют человекопонятными (ЧПУ).

  • ими легко делиться с другими людьми — можно не только переслать в сообщении, но и продиктовать устно;
  • в такой URL можно вставить ключевые слова;
  • ЧПУ легко запомнить, так как он вызывает простые и понятные ассоциации;
  • они позволяют быстрее перемещаться по сайтам — вы можете удалить часть адреса с конца и сразу попасть в нужный раздел, что избавляет от поиска соответствующей ссылки на сайте.

При формировании ЧПУ на своем сайте следует придерживаться определенных правил:

использовать транслитерацию в соответствии с приведенной ниже таблицей (с одним исключением — «ый» — транслитерируется как «iy»).

  • пробелы, а также знаки препинания менять на дефис или нижнее подчеркивание, а два таких символа подряд заменять на один;
  • удалять символ «-» в начале или в конце адреса;
  • не использовать заглавные буквы, так как УРЛы чувствительны к регистру;
  • стараться формировать короткие URL.

Установка разных стилей редактора для разных типов записей

С представленным ниже кодом, вставленным в ваш файл functions.php, вы можете установить разные таблицы стилей редактора для разных типов поста. Вам нужно будет адаптировать код в зависимости от ваших типов постов, и не забудьте также сменить названия таблиц стилей.

function my_editor_style() {
	global $current_screen;
	switch ($current_screen->post_type) {
		case 'post':
		add_editor_style('editor-style-post.css');
		break;

		case 'page':
		add_editor_style('editor-style-page.css');
		break;

		case 'portfolio':
		add_editor_style('editor-style-portfolio.css');
		break;
	}
}
add_action( 'admin_head', 'my_editor_style' );

Отображение AdSense только для посетителей с поисковых систем

Можно показать AdSense только посетителям, пришедшим через поиск поисковых систем, и вот код для этого, просто вставьте его в файл functions.php вашей темы.

function scratch99_fromasearchengine(){
	$ref = $_SERVER;
	$SE = array('/search?', 'images.google.', 'web.info.com', 'search.', 'del.icio.us/search', 'soso.com', '/search/', '.yahoo.');
	foreach ($SE as $source) {
		if (strpos($ref,$source)!==false) return true;
	}
	return false;
}

В массиве $SE вы определяете поисковые системы. Вы можете добавить новую поисковую систему, добавив элемент в массив, затем вставить код где угодно в шаблоне, где вы хотите показать рекламу AdSense, и все! Реклама будет отображаться только посетителям, пришедшим на сайт через поисковые системы.

if (function_exists('scratch99_fromasearchengine')) {
	if (scratch99_fromasearchengine()) {
		INSERT YOUR CODE HERE
	}
}

Готовая PHP-функция текущего URL страницы

function request_url()
{
  $result = ''; // Пока результат пуст
  $default_port = 80; // Порт по-умолчанию
 
  // А не в защищенном-ли мы соединении?
  if (isset($_SERVER'HTTPS') && ($_SERVER'HTTPS'=='on')) {
    // В защищенном! Добавим протокол...
    $result .= 'https://';
    // ...и переназначим значение порта по-умолчанию
    $default_port = 443;
  } else {
    // Обычное соединение, обычный протокол
    $result .= 'http://';
  }
  // Имя сервера, напр. site.com или www.site.com
  $result .= $_SERVER'SERVER_NAME';
 
  // А порт у нас по-умолчанию?
  if ($_SERVER'SERVER_PORT' != $default_port) {
    // Если нет, то добавим порт в URL
    $result .= ':'.$_SERVER'SERVER_PORT';
  }
  // Последняя часть запроса (путь и GET-параметры).
  $result .= $_SERVER'REQUEST_URI';
  // Уфф, вроде получилось!
  return $result;
}

Внимание! В интернетах пишут, что в некоторых случаях, при криворукости администраторов веб-сервера, параметр $_SERVER может не работать. Поэтому проверяйте корректность результатов функции при первых запусках скриптов на новом месте

7 ответов

Лучший ответ

Во многих случаях вы получите URL-адрес последней страницы, которую посетил пользователь, если он попал на текущую страницу, щелкнув ссылку (в отличие от ввода непосредственно в адресную строку, или, я полагаю, в некоторых случаях, отправив форму?). Указано . Подробнее здесь.

разрешает навигацию, но не доступ к URL-адресам в сеансе по соображениям безопасности и конфиденциальности. Если бы была доступна более подробная история URL, то каждый посещенный вами сайт мог бы видеть все другие сайты, на которых вы были.

Если вы имеете дело с перемещением состояний по вашему собственному сайту, то, возможно, менее хрупким и, безусловно, более полезным использовать один из обычных методов управления сеансом: данные cookie, параметры URL или информацию о сеансе на стороне сервера.

332

Ciro Santilli 新疆改造中心法轮功六四事件
18 Июн 2014 в 09:29

Это позволит перейти к ранее посещенному URL.

-6

Pang
29 Июл 2019 в 02:37

соответствует вашим целям, но не работает для версий Internet Explorer более ранних, чем IE9.

Он будет работать для других популярных браузеров, таких как Chrome, Mozilla, Opera, Safari и т. Д.

Abandoned Cart
13 Июл 2019 в 14:20

Те из вас, кто использует Node.js и Express, могут установить cookie-файл сеанса, который запомнит URL текущей страницы, что позволит вам проверить реферер при загрузке следующей страницы. Вот пример, который использует промежуточное ПО :

Затем вы можете проверить наличие cookie-файла referer следующим образом:

Не предполагайте, что cookie-файл реферера всегда существует с этим методом, поскольку он не будет доступен в тех случаях, когда предыдущий URL-адрес был другим веб-сайтом, сеанс был очищен или был только что создан (загрузка веб-сайта впервые).

Nadav
26 Июл 2018 в 03:38

Если вы пишете веб-приложение или одностраничное приложение (SPA), в котором маршрутизация выполняется в приложении / браузере, а не в обратном направлении на сервер, вы можете сделать следующее:

Затем в вашем новом маршруте вы можете сделать следующее, чтобы получить предыдущий URL:

8

Jonathan Lin
2 Июл 2019 в 15:17

не совпадает с фактическим URL во всех ситуациях.

У меня есть приложение, где мне нужно установить frameset с 2 кадрами. Один кадр известен, другой — это страница, на которую я ссылаюсь. Казалось бы, было бы идеально, потому что вам не нужно было бы передавать фактическое имя файла в документ набора фреймов.

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

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

18

Scott
23 Сен 2012 в 17:40

Если вы хотите перейти на предыдущую страницу, не зная URL-адреса, вы можете использовать новый API History.

Но вы не можете манипулировать содержимым стека истории в браузере, который не поддерживает HTML5 History API

Для получения дополнительной информации см. документ.

26

RPDeshaies
16 Апр 2014 в 20:00

Автоматическая замена слов партнерскими ссылками

Чтобы заменить слова партнерскими ссылками автоматически, просто вставьте код ниже в ваш файл functions.php. Не забудьте вставить ваши слова / ссылки, как показано в примере ниже.

function replace_text_wps($text){
	$replace = array(
	// 'WORD TO REPLACE' => 'REPLACE WORD WITH THIS'
	'thesis' => '<a href="http://mysite.com/myafflink">thesis</a>',
	'studiopress' => '<a href="http://mysite.com/myafflink">studiopress</a>'
	);
	$text = str_replace(array_keys($replace), $replace, $text);
	return $text;
}

add_filter('the_content', 'replace_text_wps');
add_filter('the_excerpt', 'replace_text_wps');

Ответы на часто задаваемые вопросы о переносе сайта с изменением URL

  • Не противоречит ли рекомендациям Google перенос сайта по частям?Нет, не противоречит.
  • Как узнать, сколько страниц проиндексировано?
    Выберите нужный ресурс в Search Console и откройте отчет об индексировании, в котором приводится общая статистика. Чтобы узнать, сколько страниц из перечисленных в файлах Sitemap было проиндексировано, воспользуйтесь специальным отчетом.
  • Сколько времени потребуется Google, чтобы распознать изменения URL?
    Точный срок назвать невозможно, поскольку он зависит от размера сайта и скорости сканирования. URL сайта переносятся поочередно.
  • Не перестанут ли ссылки учитываться при оценке моих страниц, если я настрою переадресацию на новые URL?
    Нет. Переадресация 301 или 302 не приводит к ухудшению оценки в системе PageRank.

Подгрузка записей при нажатии на кнопку — Показать еще

Шаг 1

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

//вместо этого
<div id="load_more_gs">
<div class="cssload-container"><div class="cssload-whirlpool"></div></div>
</div>

//вставить это
<div id="loadmore_gs">Показать еще</div>

Показать еще — это текст кнопки, если хотите, можно поменять.

Шаг 2

Теперь добавим новые стили для кнопки. Если вы добавляли стили для первого метода, можете их удалить.

#loadmore_gs{
	background:#63a63e;
	color:#fff;
	padding:5px 0;
	text-align:center;
	-moz-border-radius:4px; 
	-webkit-border-radius:4px;
	border-radius: 4px;
	width:150px;
	margin:0 auto;
	cursor:pointer;
}

Шаг 3

Точно такой же как и в прошлом методе, если уже делали его, пропускайте, если нет, то делайте аналогично первому методу.

Шаг 4

Скрипт асинхронной загрузки будет немного отличаться, так как теперь он будет срабатывать на нажатие кнопки. Выглядеть он будет так:

jQuery(function($){
	$('#loadmore_gs').click(function(){
		$(this).text('Загрузка...');
		var data = {
			'action': 'loadmore',
			'query': true_posts,
			'page' : current_page
		};
		$.ajax({
			url:ajaxurl,
			data:data,
			type:'POST',
			success:function(data){
				if( data ) { 
					$('#loadmore_gs').text('Показать еще').before(data);
					current_page++;
					if (current_page == max_pages) $("#loadmore_gs").remove();
				} else {
					$('#loadmore_gs').remove();
				}
			}
		});
	});
});

Тут можно настраивать текст кнопки или поменять имя айди, если Вы решили его сменить везде. В 3 строке есть слово — Загрузка…. Это выведется, когда Вы нажмете на кнопку и обработчик AJAX начнет свою работу.

В 15 строке текст — Показать еще, этот текст появится после подгрузки. Если Вы изменили текст из первого шага, то измените и здесь.

Шаг 5

Обработчик оставляем тот же без изменений, так что этот шаг тоже можно пропустить, ну или если Вы его не делали, то выполните его из прошлого метода.

По второму методу, тоже все. Как и с первым, если все шаги выполнены правильно, результат не заставит себя ждать.

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

На этом все, спасибо за внимание

Обзор способов вывода произвольных типов записей в WordPress

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

Как вывести свой тип постов на главной странице сайта

По дефолту все пользовательские типы записей не выводятся на главной странице. Если у вас стоит задача вывести список таких постов на главную, то можете использовать приведенные ниже код, добавив его в файл functions.php вашей темы.

В этом коде $query->set() принимает два параметра:

  • приоритет, который нужно изменить, в данном примере post_type.
  • массив, который  нужно передать как значение для post_type. Как видите в коде указано значение для массива «post», если вам нужно вывести только ваш тип записей, то «post» можно удалить.

В примере мы сделали вывод стандартных постов и записей типа books. Название типа записей стоит указывать то же, что вы задавали при регистрации кастомного типа.

Цикл для вывода своих типов постов в любом месте сайта

Для этих целей используется класс WP_Query и цикл WordPress.

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

Вывод постов из custom post type в виджете

В WordPress есть стандартный виджет, который позволяет выводить записи, но в нем отсутствует функционал по выбору нужного нам типа записей. В качестве альтернативы вы можете установить и активировать плагин – «Ultimate Posts Widget». Далее перейти в меню «Внешний вид» — «Виджеты» и перетащить в область виджета блок «Ultimate Posts».

Данный плагин позволяет вам отсортировать записи по любому кастомному типу, а также сделать настройки по самому виду постов.

Выводим записи с помощью стандартного меню движка

Для этого переходим в раздел админки «Внешний вид» — «Меню». Слева выберите пункт меню «Произвольные ссылки» и укажите название меню, например «Обзоры книг» и slug, который вы задавали при регистрации типа записи, в наше случае это «books», например http://site.com/books.

Тут же вы можете вывести отдельную запись из своего кастомного типа постов, выбрав вкладку «Книги».

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Все про сервера
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: