2010-12-26 22 views

Trả lời

12

Đặt này trong bạn functions.php:

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

Điều này hoạt động hoàn hảo! Cám ơn rất nhiều! –

+1

u đã lưu ngày của tôi :) – xsari3x

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

Cảm ơn, nhưng nơi nào tôi đặt này? Xin lỗi, tôi mới sử dụng php và Wordpress nói chung. Cám ơn sự giúp đở cuả bạn. –

+0

Không bao giờ sử dụng WP, xin lỗi. Hãy tìm hàm hoặc tệp nơi chèn chú thích xảy ra, sau khi nhận xét được chèn vào trong cơ sở dữ liệu, đó là khi chuyển hướng xảy ra, thường là chức năng tiêu đề được sử dụng, hoặc có thể WP có chức năng chuyển hướng nội bộ, dù sao, bạn có thể gửi tiêu đề và thoát tập lệnh. –

3

Sử dụng WordPress Plugin API. Đó là cách thích hợp để mở rộng hoặc tùy chỉnh chức năng trong WordPress. Khi bạn đã đọc một chút về API, hãy xem Tham chiếu hành động (Tôi sẽ đăng liên kết nhưng StackOverflow sẽ không cho phép tôi).

Bạn sẽ cần ít nhất hai móc hành động để hoàn thành nhiệm vụ của bạn:

  1. comment_post - chạy trực tiếp sau khi một bình luận được thêm vào cơ sở dữ liệu của bạn
  2. comment_form - chạy bất cứ khi nào hình thức bình luận là được in từ mẫu chủ đề

Về cơ bản, chúng tôi muốn nắm bắt biến HTTP_REFERER trong $ _SESSION liên tục bất cứ khi nào người dùng f irst thấy biểu mẫu nhận xét. Sau đó, chúng tôi chuyển hướng họ sau khi họ đăng nhận xét.

Tạo comment-redirect.php trong thư mục WordPress wp-content/plugins.
Dưới đây là một ý tưởng thô của những gì bạn sẽ đặt trong tập tin này (tôi rời khỏi nó tùy thuộc vào bạn để tinh chỉnh/kiểm tra nó):

<?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'); 

Một khi bạn đã plugin của bạn lưu lại, kích hoạt nó trong wp-admin Plugins phần (thường được tìm thấy gần h ** p: //your-website-address.com/wp-admin).

+1

Wow, cảm ơn! Mặc dù tôi hầu như không biết phải làm gì với điều này. Tôi đã lưu các tập tin và kích hoạt các plugin và nó không có vẻ làm việc như là, nhưng tôi đoán tôi sẽ phải chơi với nó. –

Các vấn đề liên quan