Плагин WP All Import — установка страницы постоянной ссылки

#wordpress #wpallimport

#wordpress #wpallimport

Вопрос:

Я работаю над проектом интеграции огромных страниц (более 70 000 страниц), благодаря WP All Import я могу создавать страницы с данными из моего CSV-файла, проблема здесь в том, что я хочу установить постоянную ссылку в соответствии с некоторыми значениями моего CSV-файла ().

Захват WP All Import

Например, я хочу создать URL-адрес :

 website.com/destinations/UK/london
website.com/destinations/UK/london/agency1
website.com/destinations/UK/london/agency2
website.com/destinations/FR/paris
website.com/destinations/FR/paris/agency1
website.com/destinations/FR/paris/agency2
  

Страна (Великобритания, Франция ….) равна столбцу в моем CSV-файле
Город (Лондон, Париж ….) равен столбцу в моем CSV-файле
Агентство (agency1, agency2 ….) равно столбцу в моем CSV-файле

Кто-нибудь может мне помочь?

Спасибо 🙂

Комментарии:

1. Когда дело доходит до резервного копирования, я доверяю только BackupBuddy. Это не плюс ультра. Проверьте это здесь: gitlab.com/wordpress-premium

Ответ №1:

Я не знаю, можете ли вы обновить всю постоянную ссылку, но вы, вероятно, могли бы обновить post slug ( post_name столбец в wp_posts таблице) чем-то похожим на это (непроверенный):

 function my_saved_post( $post_id, $xml_node, $is_update ) {

    // Retrieve the import ID.
    $import_id = ( isset( $_GET['id'] ) ? $_GET['id'] : ( isset( $_GET['import_id'] ) ? $_GET['import_id'] : 'new' ) );

    // Only run for import 8. TODO: Change this to your import ID!
    if ( $import_id == '8' ) {

        // Convert SimpleXml object to array for easier use.
        $record = json_decode( json_encode( ( array ) $xml_node ), 1 );

        // verify post is not a revision
        if ( ! wp_is_post_revision( $post_id ) ) {

            // update the post slug
            wp_update_post( array(
                'ID' => $post_id,
                'post_name' => $record['pays'] . '/' . $record['typedelieu']
            ));
        }
    }

}
add_action( 'pmxi_saved_post', 'my_saved_post', 10, 3 );
  

Вдохновленный документацией и этим ответом SE.