Удалить все слова остановки из старых констант

Я пытаюсь удалить все слова остановки из permalinks в WordPress для будущего и старого контента.

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

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

Есть идеи?

благодаря

Solutions Collecting From Web of "Удалить все слова остановки из старых констант"

Этот скрипт выполнит эту задачу:

function wpse_287807_replace_url() { // Get all posts $query = new WP_Query(array( 'post_type' => 'post', 'posts_per_page' => -1, )); $posts = $query->get_posts(); foreach ($posts as $post) { // Get permalink $url = $post->post_name; // Stop words array $stop_words = array( '-a-', '-the-', '-of-', ); // Replacement $replacement = '-'; // Replace url $new_url = str_replace($stop_words, $replacement, $url); // Prepare arguments $args = array( 'ID' => $post->ID, 'post_name' => $new_url, ); // Update post wp_update_post( $args ); } } add_action('init', 'wpse_287807_replace_url'); 

Если у вас много сообщений, отключите создание сообщений о revision , добавив константу WP_POST_REVISIONS в wp-config.php . Это ускорит работу скрипта и снизит спрос на использование памяти.

define( 'WP_POST_REVISIONS', false );