Варианты запросов, заголовки сообщений и SEO для Yoast
Большинство людей, которые используют WordPress, используют переменные запросов каждый день, не зная об этом. В прежние времена у нас были веб-сайты с такими URL-адресами, как example.com/?p=123, и мы называли эти «уродливые» постоянные ссылки. Это побудило всех делать красивые, например, example.com/2018/post-name/. Многие не понимают, что эти вызовы? P = 123 являются переменными запроса.
WordPress и большинство современных инструментов CMS принимают эту постоянную ссылку, переводят ее обратно в переменную запроса и получают идентификатор записи со значением 123. Переменная p (обозначающая запись) имеет значение 123. Это имеет смысл.
И вы можете сделать свой собственный.
Если у вас есть возможность рассказать людям о посещении example.com/?p=123 или example.com/2018/post-name/, я уверен, что большинство из вас выберет последнее. И если вы пишете код и вам нужно согласованное местоположение для вызова, вы бы предпочли предположить, что все используют wp-контент, и посмотрите на example.com/wp-content/plugins/myplugin/my-file.php или вы скорее используете example.com/myplugin/?
Сейчас. Этот пост не о том, как сделать эти удивительные виртуальные страницы. Есть несколько хороших уроков, таких как Metabox.io-х чтобы ты начал там. Это когда у вас немного другой сценарий.
Топ ↑
По ряду причин у меня есть страница, созданная для управления вызовами пользовательских запросов. Это позволяет мне редактировать содержимое страницы так, как будто это была страница! Любой может редактировать содержимое страницы, изменять информацию, а затем все остальное генерируется волшебным образом, его можно легко настроить в соответствии с моей темой, и это в основном работает для меня.
Что не работает, так это то, что все страницы имеют одинаковый заголовок. И это, как мы все знаем, плохой SEO. Я не хочу, чтобы все мои страницы имели одинаковый заголовок, и это сбивает с толку пользователей, потому что они так логично переходят на example.com/my-thing/sub-thing/ и example.com/my-thing/other-thing/ заголовок страницы должен быть другим, верно?
Изменение отображаемого заголовка на странице не так уж страшно. У меня есть этот код в верхней части страницы, чтобы получить переменную запроса:
$ my_thing = (isset ($ wp_query-> query ['my_thing']))? $ wp_query-> query ['my_thing']: 'main';
И затем, когда я повторяю название, я делаю это:
<h1 class = "entry-title"> My Thing <? php $ title = ('main'! == $ my_thing)? «на». ucfirst ($ my_thing): 's'; echo $ title; ?> </ h1>
Это означает, что мои названия - «Мои вещи» или «Мои вещи об этом». Если бы в моих переменных запроса было несколько «слов» (разделенных символом «-»), я бы использовал строку replace и использовал каждое слово с заглавными буквами с помощью ucwords ().
Топ ↑
Проблема в том, что заголовок страницы не… ну… заголовок заголовка. Вы когда-нибудь смотрели на панель браузера? Предполагая, что у вас нет 94 открытых вкладок одновременно ...
Тогда ваш браузер будет выглядеть примерно так:
Представьте, что они все сказали «Мои вещи | Полуэльф на Tech »? Ну, это было бы отстой. Это отстой для вашего чтения, отстой для чтения с экрана, и если у вас есть Yoast SEO, это довольно легко исправить.
Топ ↑
Шаг первый, чтобы вернуться к тому, что я сделал два года назад, создание пользовательской переменной Yoast SEO , На этот раз я хочу сделать переменную для %% mything %%:
wpseo_register_var_replacement ('%% mything %%', массив ($ this, 'yoast_retrieve_mything_replacement'), 'basic', 'Тип страницы с вещами, на которой мы находимся.');
И код будет получать переменную запроса и анализировать ее:
function yoast_retrieve_mything_replacement () {$ my_thing = get_query_var ('my_thing', 'none'); $ return = ('none'! == $ my_thing)? «на». ucfirst ($ my_thing): ''; возврат $ возврат; }
Шаг 2 идет на страницу, открывает редактор сниппетов и делает заголовок так:
А потом? Разлейте пиво и посмотрите спортивные состязания.
Com/?Многие не понимают, что эти вызовы?
Com/?
Com/myplugin/?
Com/my-thing/other-thing/ заголовок страницы должен быть другим, верно?
Php $ title = ('main'! == $ my_thing)?
Ucfirst ($ my_thing): 's'; echo $ title; ?
Вы когда-нибудь смотрели на панель браузера?