#wordpress #wpallimport
#wordpress #wpallimport
Вопрос:
Я работаю над проектом интеграции огромных страниц (более 70 000 страниц), благодаря WP All Import я могу создавать страницы с данными из моего CSV-файла, проблема здесь в том, что я хочу установить постоянную ссылку в соответствии с некоторыми значениями моего CSV-файла ().
Например, я хочу создать 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.