2010-12-26 15 views

risposta

12

mettere questo nel vostro functions.php:

add_filter('comment_post_redirect', 'redirect_after_comment'); 
function redirect_after_comment($location) 
{ 
return $_SERVER["HTTP_REFERER"]; 
} 
+1

Funziona perfettamente! Grazie mille! –

+1

tu hai salvato la mia giornata :) – xsari3x

-1
$ref = $_SERVER["HTTP_REFERER"]; 
header("Location: $ref"); 
+0

Grazie, ma dove posso mettere questo? Scusa, sono nuovo su PHP e Wordpress in generale. Grazie per il tuo aiuto. –

+0

Mai usato WP, mi dispiace. Cerca la funzione o il file in cui avviene l'inserimento dei commenti, dopo che il commento è inserito nel database, cioè quando avviene il reindirizzamento, solitamente viene utilizzata la funzione di intestazione, o forse WP ha la funzione di reindirizzamento interno, comunque puoi inviare l'intestazione e uscire dallo script. –

3

Utilizzare WordPress Plugin API. È il modo corretto per estendere o personalizzare la funzionalità in WordPress. Dopo aver letto un po 'dell'API, consulta il riferimento all'azione (Vorrei pubblicare il link ma StackOverflow non mi consente di effettuare il).

Avrete bisogno di almeno due ganci di azione per completare il vostro compito:

  1. comment_post - eseguito direttamente dopo un commento viene aggiunto al database
  2. comment_form - corsa ogni volta che il modulo dei commenti è stampato da un tema template

In pratica, vogliamo acquisire la variabile HTTP_REFERER nel persistente $ _SESSION ogni volta che l'utente f prima vede il modulo di commento. Poi li reindirizziamo quando pubblicano il commento.

Creare comment-redirect.php nella cartella WordPress wp-content/plugins.
Ecco una vaga idea di quello che si potrebbe mettere in questo file (lascio a voi per affinare/testarlo):

<?php 
/* 
Plugin Name: Post Comment Redirect 
Plugin URI: http://example.com 
Description: Redirects you to the previous page after posing a comment 
Version: 0.1a 
Author: Anonymous 
Author URI: http://example.com 
License: GPL2 
*/ 

// Run whenever a comment is posted to the database. 
// If a previous page url is set, then it is unset and 
// the user is redirected. 
function post_comment_redirect_action_comment_post() { 
    if (isset($_SESSION['PCR_PREVIOUS_PAGE_URL'])) { 
    $ref = $_SESSION['PCR_PREVIOUS_PAGE_URL']; 
    unset($_SESSION['PCR_PREVIOUS_PAGE_URL']); 
    header('Location: '.$ref); 
    } 
} 

// Run whenever comment form is shown. 
// If a previous page url is not set, then it is set. 
function post_comment_redirect_action_comment_form() { 
    if (!isset($_SESSION['PCR_PREVIOUS_PAGE_URL'])) { 
    if ($ref = $_SERVER['HTTP_REFERER']) { 
     $_SESSION['PCR_PREVIOUS_PAGE_URL'] = $ref; 
    } 
    } 
} 

add_action('comment_post', 'post_comment_redirect_action_comment_post'); 
add_action('comment_form', 'post_comment_redirect_action_comment_form'); 

Una volta che hai il plugin salvato, attivare nel wp-admin Plugin sezione (di solito si trova vicino a h ** p: //your-website-address.com/wp-admin).

+1

Wow, grazie! Anche se non ho quasi idea di cosa fare con questo. Ho salvato il file e attivato il plugin e non sembra funzionare come è, ma suppongo che dovrò giocarci. –

Problemi correlati