Используйте пользовательский тип сообщения «Члены команды» вместо «Автор» для сообщений в блоге. - PullRequest
0 голосов
/ 17 января 2020

В целях SEO .... клиент хотел бы, чтобы ссылки на авторов указывали на био-страницу участника Команды, а не на страницу автора по умолчанию .... например:

В блоге есть сообщения, написанные пользователь A. Ссылка автора теперь указывает на:

/author/usera

, но они хотели бы, чтобы она указала на

/our-team/user-a

"Наш Team "- это пользовательский тип сообщения, а пользователь A - это сообщение в нем.

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

Мой обходной путь до сих пор состоит в том, чтобы переписать авторскую базу под кусок пользовательского типа поста, который позаботится о половине этого, но между автором и членом команды все еще нет никаких отношений, поэтому я использую the_author_meta(user_url) чтобы получить поле «Веб-сайт» в профиле пользователя, и я вставил туда URL члена команды.

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

Дайте мне знать, имеет ли это смысл или нет, и есть ли лучший способ сделать это ...

Спасибо!

1 Ответ

0 голосов
/ 17 января 2020

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

  1. Установите на веб-сайте автора URL-адрес страницы группы
  2. Расширенные пользовательские поля: создание группы полей, которая отображается для всех учетных записей пользователей и включает в себя поле «Пост» (ограничено постами команды), так что вы можете выбрать ровно одну групповую запись для каждого пользователя WP вручную

Я покажу вам первый вариант.

Предположим, что каждая учетная запись пользователя (Пользователи) имеет URL-адрес для набора страниц участника группы, например, в профиле пользователя usera, который вы видите: Веб-сайт: https://your-site/our-team/user-a

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

add_filter( 'author_link', 'team_author_link', 10, 3 );
function team_author_link( $link, $author_id, $author_nicename ) {

  $userinfo = get_userdata($author_id);
  // if the user's Website field is not empty, replace the author link:
  $link = empty($userinfo->data->user_url) ? $link : $userinfo->data->user_url;
  return $link;
}

Теперь у вас будут все ваши авторские ссылки, связанные с их «веб-сайтом», который, как мы надеемся, был установлен на странице участника команды.

Это также можно сделать с помощью расширенных настраиваемых полей, которые немного красивее, где можно добавить группу полей, показанную для ролей пользователей - > А ll, с группой полей, имеющей поле типа «Post» с именем «team_post», соответствующее только пользовательскому типу записи команды. Это будет выглядеть примерно так: https://i.stack.imgur.com/LLgWv.png (ваш тип сообщения, скорее всего, не будет отображаться как «Сотрудник», но, скорее всего, «Команда»).

Затем вы можете выбрать Командный пост в профиле каждого автора и измените функцию фильтра следующим образом:

add_filter( 'author_link', 'team_author_link', 10, 3 );
function team_author_link( $link, $author_id, $author_nicename ) {

  $team_post_id = get_field('team_post', $author_id);
  // if the team post is set, get the permalink to the team post:
  $team_link = get_permalink($team_post_id);
  $link = ($team_link !== false) ? $team_link : $link;
  return $link;
}

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

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