dener misiniz
function custom_404_redirect() {
if (is_404()) {
$request_uri = $_SERVER['REQUEST_URI'];
$path_parts = explode('/', trim($request_uri, '/'));
$keywords = explode('-', end($path_parts));
foreach ($keywords as $keyword) {
$args = array(
'post_type' => 'post',
'posts_per_page' => 1,
'orderby' => 'rand',
's' => $keyword,
);
$query = new WP_Query($args);
if($query->have_posts()) {
$query->the_post();
$redirect_url = get_permalink();
wp_reset_postdata();
wp_redirect($redirect_url);
exit;
}
wp_reset_postdata();
}
}
}
add_action('template_redirect', 'custom_404_redirect');veya daha mantıklısı böyle olacaktır düzenleme gerekebilir
function custom_404_redirect($query) {
if (!$query->is_main_query() || (isset($query->query_vars['name']) && !empty($query->query_vars['name']) && $query->have_posts())) {
return;
}
$request_uri = $_SERVER['REQUEST_URI'];
$path_parts = explode('/', trim($request_uri, '/'));
$keywords = explode('-', end($path_parts));
foreach ($keywords as $keyword) {
$args = array(
'post_type' => 'post',
'posts_per_page' => 1,
'orderby' => 'rand',
's' => $keyword,
);
$query = new WP_Query($args);
if ($query->have_posts()) {
$query->the_post();
$redirect_url = get_permalink();
wp_reset_postdata();
wp_redirect($redirect_url);
exit;
}
wp_reset_postdata();
}
}
add_action('parse_request', 'custom_404_redirect');