Добавление косой черты к пользовательскому слагу Post Type в WP - PullRequest
0 голосов
/ 08 октября 2019

У меня есть собственный тип сообщения, который создается через XML-RPC с использованием RubyPress.

При создании сообщения я указываю несколько слешей в post_name (slug или permalink)

Однако преобразует эти слэши в дефисы:

Например: year/code/some-string-name в конечном итоге становится year-code-some-string-name

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

1 Ответ

0 голосов
/ 08 октября 2019

После некоторых исследований это сработало для меня.

Вы должны установить плагин с именем Пользовательские постоянные ссылки , так как WordPress не позволит вам добавлять косые черты в постоянные ссылки. через код.

Следующий код будет выполняться каждый раз при публикации MyPost. Помимо публикации, вы можете использовать другие зарезервированные слова, ищите «Переходы статуса сообщения», если вам интересно.

add_action('publish_mypost', 'add_slashes_to_mypost_slug');

function add_slashes_to_mypost_slug( $post_id ) {
    $post = get_post($post_id);
    $slug = $post->post_name;

    $slug_exploded = explode('-', $slug);
    $year = array_shift($slug_exploded);
    $code = array_shift($slug_exploded);
    $remainder = implode('-', $slug_exploded);
    $new_slug = $year.'/'.$code.'/'.$remainder;

    update_post_meta($post_id, 'custom_permalink', $new_slug);
}
...