Wordpress Custom Alias ​​Постоянные ссылки - PullRequest
0 голосов
/ 03 июля 2018

Есть ли способ создать альтернативную постоянную ссылку для определенного типа контента в Wordpress?

Например, я хочу URL псевдонима:

https://example.com/123

чтобы указать на существующую постоянную ссылку, такую ​​как:

https://example.com/something/this-is-a-post

Я не против написать код, если придется.

1 Ответ

0 голосов
/ 03 июля 2018

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

function my_init() {
  global $wpdb;

  // Using an alias id to redirect to permalink

  // split URL path into parts and look at the first part (index 0)
  $path_parts = explode("/", substr(wp_parse_url($_SERVER["REQUEST_URI"], PHP_URL_PATH), 1));

  // make sure we're dealing with an number
  if (is_numeric($path_parts[0]))
  {
    // query the database using the numeric value to see if it corresponds to a post ID of the mp type and its status is publish
    $results = $wpdb->get_results("SELECT post_type, post_status FROM wp_posts WHERE ID = $path_parts[0]");
    if ($results[0]->post_type == 'mp' && ($results[0]->post_status == 'publish' || is_admin()))
    {
      // redirect to permalink url
      wp_redirect(get_post_permalink($path_parts[0]));
      exit;
    }
  }
}
...