Come reindirizzare i visitatori a un URL personalizzato usando codice PHP in functions.php
Gli utenti devono essere reindirizzati a un URL personalizzato che già conosco (fa parte della logica di programmazione). Ho solo bisogno di sapere quale funzione WordPress utilizzare/quale codice PHP usare per reindirizzare l'utente al nuovo URL. Questo codice verrà eseguito all'interno di una funzione PHP in functions.php--> quella funzione prima eseguirà alcune elaborazioni e poi invierà l'utente al nuovo URL
Come posso fare quanto sopra?
Nota: Ho provato a usare wp_redirect ma non funziona.
Questo è il codice che ho provato a usare (che non ha funzionato)--
$redirecturl = get_post_type_archive_link('property');
echo "\n\n URL di reindirizzamento per i post di proprietà=" + $redirecturl;
wp_redirect( "http://" . $redirecturl + "?post_type=property&search_keyword=" + $search_keyword ;

Innanzitutto, è difficile credere che wp_redirect
non funzioni, di seguito un codice di esempio su come utilizzarlo:
function wpse101952_redirect() {
global $post;
if( /*LOGICA CONDIZIONALE*/ ) { //esempi: is_home() o is_single() o is_user_logged_in() o isset($_SESSION['variabile'])
wp_redirect( /*URL SPECIFICA*/ );
exit();
}
}
add_action( 'template_redirect', 'wpse101952_redirect' );
In secondo luogo, ci sarebbe da chiedersi se questo sia l'approccio giusto per il tuo caso, ma per decidere dovresti spiegare meglio cosa stai cercando di fare.
modifica:
La funzione get_post_type_archive_link()
ti restituisce il permalink completo, non è necessario aggiungere http://
e ?post_type=property
:
wp_redirect( $redirecturl . "?search_keyword=" . $search_keyword );

Eseguendo qualcosa di simile al tuo codice ottengo questo avviso nel log degli errori:
Warning: Cannot modify header information - headers already sent by (output started at /xxx/wordpress/wp-content/themes/balance/functions.php:4) in /xxx/wordpress/wp-includes/pluggable.php on line 876
Quando ho usato questo per testare:
$redirecturl = 'google.com';
wp_redirect( 'http://' . $redirecturl );
exit;
Tutto funziona correttamente, quindi potresti provare:
$redirecturl = get_post_type_archive_link( 'property' );
wp_redirect( 'http://' . $redirecturl . '?post_type=property&search_keyword=' . $search_keyword );
exit;
Il codice exit
è raccomandato nella Function Reference.
