У меня есть веб-сайт объекта недвижимости, который по умолчанию выводит URL-адреса страниц объекта недвижимости следующим образом:
https://coh.stuartchapmandesign.co.uk/p ... ing-street -london/
У меня есть PHP, который использует post_type_link для автоматического обновления URL-адресов, заменяя последнее слово в данном случае «Лондон» почтовым индексом свойства, который возвращает его. как:
https://coh.stuartchapmandesign.co.uk/p ... t-sw1y6ql/
Это в общих чертах на основе документации к плагину, который он использует здесь: https://docs.wp-property-hive.com/artic ... tails-urls
Это работает и обновляет ссылки и URL-адреса на протяжении всего site, но проблема в том, что когда я посещаю страницу, я получаю ошибку 404: страница не найдена.
Пытаюсь понять, почему, но очевидно, что это связано с правилом добавления перезаписи.Будем очень благодарны за любую помощь, спасибо
add_filter( 'post_type_link', 'customise_property_post_type_link', 10, 4 );
function customise_property_post_type_link( $post_link, $post, $leavename, $sample ) {
if ( get_post_type( $post->ID ) == 'property' ) {
// Retrieve the postcode from the post meta
$meta_data = get_post_meta( $post->ID );
$postcode = isset( $meta_data['_address_postcode'][0] ) ? sanitize_title( $meta_data['_address_postcode'][0] ) : '';
// Ensure a valid postcode is available
if ( ! empty( $postcode ) ) {
// Remove hyphens from the postcode
$postcode = str_replace( '-', '', $postcode );
// Extract the last segment of the URL (the part after the last "/")
$post_link = preg_replace_callback(
'/([^\/]+)\/$/',
function ( $matches ) use ( $postcode ) {
// Replace only the last word in the segment
return preg_replace( '/[^-]+$/', $postcode, $matches[1] ) . '/';
},
$post_link
);
}
}
return $post_link;
}
add_action( 'init', 'rewrites_init' );
function rewrites_init() {
// Add rewrite rule for property pages with a postcode
add_rewrite_rule(
'^property/([^/]+)-([^/]+)/?$',
'index.php?post_type=property&name=$matches[1]',
'top'
);
flush_rewrite_rules();
}
Подробнее здесь: https://stackoverflow.com/questions/792 ... age-titles
Добавьте правило перезаписи для учета динамически изменяющихся заголовков страниц. ⇐ Php
Кемеровские программисты php общаются здесь
1732021073
Anonymous
У меня есть веб-сайт объекта недвижимости, который по умолчанию выводит URL-адреса страниц объекта недвижимости следующим образом:
https://coh.stuartchapmandesign.co.uk/property/2-4-king-street -london/
У меня есть PHP, который использует post_type_link для автоматического обновления URL-адресов, заменяя последнее слово в данном случае «Лондон» почтовым индексом свойства, который возвращает его. как:
https://coh.stuartchapmandesign.co.uk/property/2-4-king-street-sw1y6ql/
Это в общих чертах на основе документации к плагину, который он использует здесь: https://docs.wp-property-hive.com/article/619-creating-seo-Friendly-property-details-urls
Это работает и обновляет ссылки и URL-адреса на протяжении всего site, но проблема в том, что когда я посещаю страницу, я получаю ошибку 404: страница не найдена.
Пытаюсь понять, почему, но очевидно, что это связано с правилом добавления перезаписи.Будем очень благодарны за любую помощь, спасибо
add_filter( 'post_type_link', 'customise_property_post_type_link', 10, 4 );
function customise_property_post_type_link( $post_link, $post, $leavename, $sample ) {
if ( get_post_type( $post->ID ) == 'property' ) {
// Retrieve the postcode from the post meta
$meta_data = get_post_meta( $post->ID );
$postcode = isset( $meta_data['_address_postcode'][0] ) ? sanitize_title( $meta_data['_address_postcode'][0] ) : '';
// Ensure a valid postcode is available
if ( ! empty( $postcode ) ) {
// Remove hyphens from the postcode
$postcode = str_replace( '-', '', $postcode );
// Extract the last segment of the URL (the part after the last "/")
$post_link = preg_replace_callback(
'/([^\/]+)\/$/',
function ( $matches ) use ( $postcode ) {
// Replace only the last word in the segment
return preg_replace( '/[^-]+$/', $postcode, $matches[1] ) . '/';
},
$post_link
);
}
}
return $post_link;
}
add_action( 'init', 'rewrites_init' );
function rewrites_init() {
// Add rewrite rule for property pages with a postcode
add_rewrite_rule(
'^property/([^/]+)-([^/]+)/?$',
'index.php?post_type=property&name=$matches[1]',
'top'
);
flush_rewrite_rules();
}
Подробнее здесь: [url]https://stackoverflow.com/questions/79203487/add-rewrite-rule-to-account-for-dynamically-changed-page-titles[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия