Добавьте правило перезаписи для учета динамически изменяющихся заголовков страниц.Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Добавьте правило перезаписи для учета динамически изменяющихся заголовков страниц.

Сообщение Anonymous »

У меня есть веб-сайт объекта недвижимости, который по умолчанию выводит 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»