Чи можна змінити URL-адресу для звичайного типу публікації, не впливаючи на URL-адреси інших спеціальних типів публікацій?


9

Дилема

У мене є кілька спеціальних типів публікацій:

  • Елементи портфоліо
  • Відгуки
  • FAQ

Структури URL-адрес для цих спеціальних типів публікацій:

  • mysite.com/ portfolio / name-of-custom-post
  • mysite.com/ testimonial / name-of-custom-post
  • mysite.com/ faq / name-of-custom-post

Я хотів би використовувати звичайний, вбудований тип публікації WordPress для контролю наших записів у блозі, і URL-адреса для кожного запису в блозі буде такою:

  • mysite.com/ blog / name-of-post

Якщо я перейду до "Налаштування"> Постійні посилання та відрегулюю структуру URL-адреси на зразок ...

/blog/%postname%/

... тоді впливають URL-адреси всіх моїх публікацій, що призводить до:

  • mysite.com/ blog / portfolio / name-of-custom-post
  • mysite.com/ blog / testimonial / post-name-custom-post
  • тощо ...

Питання

Що я хотів би знати - чи можна відрегулювати структуру URL для вбудованого типу публікації WordPress, не впливаючи на структуру URL інших користувацьких типів публікацій?

Єдиний інший спосіб, який я бачу вирішити свою дилему, - це створити інший спеціальний тип публікації під назвою "Блог". Це здається марним, тому що тоді я взагалі не буду використовувати вбудований тип WordPress.

Якщо комусь це потрібно, Чому

Якщо хтось задається питанням, чому мені так погано потрібен "блог" в URL-адресі, це тому, що ми об'єднуємо наш блог в ту ж установку, що і наш сайт, і хочемо зберегти цілі URL-адреси, щоб ми не втратили цінний сік Google.

Будь-яка допомога дуже вдячна - дякую!


Я щойно задав це ж питання майже слово за словом, радий, що знайшов це, дякую
JasonDavis

Відповіді:


14

Це можна зробити при реєстрації користувальницького типу публікації.

1) Встановіть за умовчанням постійну посилання в адміністраторі WordPress на потрібну структуру, наприклад:

/ blog /% postname%

2) Додайте параметри "slug" та "with_front" до масиву перезаписів у функції register_post_type. "slug" має бути назвою вашого посту.

  $args = array(
    // ...
    'rewrite' => array(
        'slug' => 'your_post_type',
        'with_front' => false
    ),
    // ...
  ); 
  register_post_type('your_post_type',$args);

Це повинно генерувати такі правила перезапису:

Публікація за замовчуванням: http://example.com/blog/%postname%
Сторінка за замовчуванням: http://example.com/%postname%
Спеціальний тип публікації: http://example.com/your_post_type/%postname%

EDIT

Параметр "slug" необов'язковий. Якщо ви не встановите його, використовується назва вашого спеціального типу публікації. Ознайомтесь із посиланням на функцію register_post_type: http://codex.wordpress.org/Function_Reference/register_post_type


Ти абсолютно людина. Це прекрасно працює; Дякую тобі!
Райан

@rofflox. Погляньте на це ( wordpress.stackexchange.com/questions/52471/… ) питання. Я спробував вашу відповідь, але це мені не допомогло.
Середній Джо

0

Альтернативно - Ви можете встановити постійні 301 переадресації. Це надішле людей на правильне посилання та збереже ваш сік Google незмінним. Я не знаю відповіді на ваше конкретне запитання.


Дякую mrtsherman Я запитав нашого SEO-персонала про те, як це зробити, і мені сказали, що ви втрачаєте трохи соку Google, роблячи перенаправлення 301. Я хотів би не втратити жодного, але якщо все інше не вдасться, я можу просто піти цим шляхом.
Райан

@Ryan - +1 смішно, що моя компанія просто попросила зробити те саме, що і сьогодні вдень. Сподіваємось, хтось пройде.
mrtsherman
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.