Переписування URL-адреси користувача?


32

Я встановлюю спеціальний тип публікації для своїх портфельних проектів. Основна URL-адреса для цього розміщена за адресою/projects/

Тепер я також налаштовував свої пості на щоденник щоденника з постійною посиланням /articles/*/для структури постійної посилання. Це означає, що коли я переглядаю проект портфоліо, на який змінюється URL-адреса/articles/projects/project-name/

Я знаю, що повинен бути спосіб переписати посилання лише для моїх проектів на замовлення. Але я не знайомий із синтаксисом у оголошенні URL-куски - буду вдячний за будь-яку допомогу, яку я можу отримати!

Відповіді:


42

Коли ви реєструєте користувацький тип публікації, ви повинні вказати, що правило перезапису не повинно бути попередньо для існуючої структури URL.

Якщо коротко, це означає, що ця лінія у вашому register_post_typeдзвінку:

'rewrite' => array('slug' => 'projects'),

має перетворитись на це:

'rewrite' => array('slug' => 'projects','with_front' => false),

Для отримання додаткової інформації ознайомтеся з rewriteаргументом із запису кодексу наregister_post_type

редагування: просто переконайтеся, що після оновлення коду ви змиєте правила перезапису, відвідавши Налаштування> Постійні посилання. Інакше ви все одно побачите старі посилання.


блискуче дякую! Щоб уточнити, все, що потрібно зробити для правил промивання, - це перейти на сторінку Налаштування-> Постійні посилання та натиснути "Зберегти зміни", правильно?
Джейк

4
Вам навіть не потрібно зберігати зміни. Досить просто відкрити сторінку налаштувань Постійних посилань (тобто, якщо ваш файл .htaccess можна записати. Якщо ні, натисніть зберегти зміни та скопіюйте вручну код, який він поверне у ваш .htaccess)
0x61696f

2
Це, здається, не працює для мене. Поки в моїх публікаціях проектів ще немає example.com/projects/title-of-post. Я також завітав на сторінку Постійних посилань. Що може бути причиною цього? У мене немає жодних правил переписання htaccess.
Десі

Нічого, спасибі, що це частина була відсутнім! Відвідати сторінку постійних посилань не вийшло, але просто Зберегти поточні налаштування постійної посилання :)
Олександр Таубенкорб

Я продовжував змінювати речі, не стираючи переписаних правил. Дякую за пораду!
Тан-007

15

Я мав цю проблему буквально 3 дні тому, тоді я натрапив на серію на wp.tutsplus.com . Я змінив власний код, щоб краще відповідати вашому питанню, але це я закінчив після перегляду серії. Також майте на увазі, що це не перевірено.

// sets custom post type
function my_custom_post_type() {
    register_post_type('Projects', array(   
       'label' => 'Projects','description' => '',
       'public' => true,
       'show_ui' => true,
       'show_in_menu' => true,
       'capability_type' => 'post',
       'hierarchical' => false,
       'publicly_queryable' => true,
       'rewrite' => false,
       'query_var' => true,
       'has_archive' => true,
       'supports' => array('title','editor','excerpt','trackbacks','custom-fields','comments','revisions','thumbnail','author','page-attributes'),
       'taxonomies' => array('category','post_tag'),
       // there are a lot more available arguments, but the above is plenty for now
    ));
}

add_action('init', 'my_custom_post_type');

// rewrites custom post type name
global $wp_rewrite;
$projects_structure = '/projects/%year%/%monthnum%/%day%/%projects%/';
$wp_rewrite->add_rewrite_tag("%projects%", '([^/]+)', "project=");
$wp_rewrite->add_permastruct('projects', $projects_structure, false);

Теоретично ви можете поміняти місцями все, що завгодно, за URL-адресою, що зберігається в $projects_structureзмінній, що там я просто використовував.

Удачі, і як завжди - обов'язково поверніться і повідомте нам, як це вийшло! :)


1
Відповіді, що тільки складаються із посилань, як правило, вважаються непотрібними, оскільки ці ресурси можуть (і, ймовірно, будуть) припиняти своє існування в майбутньому. Підсумуйте зміст.
chrisguitarguy

Досить справедливо, я працюю над правильним переглядом.
cmegown

11
Там тепер моя відповідь містить аналогічний коду робочого коду, який у мене є у виробничому середовищі, яке успішно переписує власну URL-адресу типу публікації. Сподіваюсь, це виявиться кориснішим!
cmegown
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.