Title: Need help with &#8220;wp_nonce_url()&#8221;  function keep getting same URL
Last modified: August 19, 2016

---

# Need help with “wp_nonce_url()” function keep getting same URL

 *  [irishbloke](https://wordpress.org/support/users/irishbloke/)
 * (@irishbloke)
 * [16 years, 9 months ago](https://wordpress.org/support/topic/need-help-with-wp_nonce_url-function-keep-getting-same-url/)
 * Hi folks im trying to add a way to flag videos on my site as dead and ive found
   an away to delete then quickly with 1 link if im admin.
 * But im using the function wp_nonce_url() to genegerate teh correct link to allow
   a one click delete but it doest seemt o want to work in side this plugin for 
   some reason i keep getting the link eack time with a “wpnonce=e0b331334f” each
   time.
 * Below ive posted the code and the correct and wrong links to deleting a post.
   Can anyone help.
 * $post_id is the id of the post.
 * NOTE: Below code is in a plugin for WordPress
    ==============================
   ================= /* WRONG: [http://videos.irishbloke.net/wp-admin/post.php?action=delete&post=907&_wpnonce=e0b881334f](http://videos.irishbloke.net/wp-admin/post.php?action=delete&post=907&_wpnonce=e0b881334f)
 * RIGHT: [http://videos.irishbloke.net/wp-admin/post.php?action=delete&post=907&_wpnonce=114cac0ffc](http://videos.irishbloke.net/wp-admin/post.php?action=delete&post=907&_wpnonce=114cac0ffc)
   */
 *     ```
       if (current_user_can('edit_post', $post->ID)){
           $POST_DEL= trailingslashit(get_bloginfo("wpurl")).wp_nonce_url("wp-admin/post.php?action=delete&post=$post_id",'delete-post_'.$post->ID);    
   
           $POST_DEL=str_replace('&','&',$POST_DEL);
           $email=str_replace('%POST_DEL%',$POST_DEL,$email);
       }
       ```
   

Viewing 2 replies - 1 through 2 (of 2 total)

 *  Thread Starter [irishbloke](https://wordpress.org/support/users/irishbloke/)
 * (@irishbloke)
 * [16 years, 9 months ago](https://wordpress.org/support/topic/need-help-with-wp_nonce_url-function-keep-getting-same-url/#post-1194728)
 * i suspect there is something wrong with the;
 * `$post->ID);`
 * in
 *     ```
       wp_nonce_url("wp-admin/post.php?action=delete&post=$post_id",'delete-post_'.$post->ID)
       ```
   
 * Also i dont understand the line;
    `if (current_user_can('edit_post', $post->ID))`
 * I dont know what $post is or ID.
 * I should also say that the link and code works inside a WordPress theme for example
   but in this plugin something wrong.
 *  Thread Starter [irishbloke](https://wordpress.org/support/users/irishbloke/)
 * (@irishbloke)
 * [16 years, 9 months ago](https://wordpress.org/support/topic/need-help-with-wp_nonce_url-function-keep-getting-same-url/#post-1194729)
 * the plugin im using with my code in it;
 *     ```
       <?php
   
       /*
       Plugin Name: GD Broken Report
       Plugin URI: http://www.dev4press.com/plugins/gd-broken-report/
       Description: Add report broken post to preset email address using templates.
       Version: 1.2.2
       Author: Milan Petrovic
       Author URI: http://www.dev4press.com/
       */
   
       require_once(dirname(__FILE__)."/config.php");
       require_once(dirname(__FILE__)."/code/defaults.php");
       require_once(dirname(__FILE__)."/gdragon/gd_debug.php");
       require_once(dirname(__FILE__)."/gdragon/gd_functions.php");
   
       if (!class_exists('GDBrokenReport')) {
           class GDBrokenReport {
               var $plugin_url;
               var $plugin_path;
               var $admin_plugin;
               var $is_bot;
               var $o;
   
               var $default_options;
               var $default_shortcode_gdposttable;
   
               function GDBrokenReport() {
                   $gdd = new GDBrokenReportDefaults();
                   $this->default_options = $gdd->default_options;
                   $this->default_shortcode_gdposttable = $gdd->default_shortcode_gdposttable;
   
                   $this->plugin_path_url();
                   $this->install_plugin();
                   $this->actions_filters();
               }
   
               function detect_bot() {
                   $str = $_SERVER['HTTP_USER_AGENT'];
                   $spiders = array("Teoma", "alexa", "froogle", "Gigabot", "inktomi", "looksmart", "URL_Spider_SQL", "Firefly", "NationalDirectory", "Ask Jeeves", "TECNOSEEK", "InfoSeek", "WebFindBot", "girafabot", "crawler", "www.galaxy.com", "Googlebot", "Scooter", "Slurp", "msnbot", "appie", "FAST", "WebBug", "Spade", "ZyBorg", "rabaz", "Baiduspider", "Feedfetcher-Google", "TechnoratiSnoop", "Rankivabot", "Mediapartners-Google", "Sogou web spider", "WebAlta Crawler");
                   foreach($spiders as $spider) {
                       if (ereg($spider, $str)) {
                           $this->is_bot = true;
                           return true;
                       }
                   }
                   $this->is_bot = false;
                   return false;
               }
   
               function plugin_path_url() {
                   $this->plugin_url = WP_PLUGIN_URL.'/gd-broken-report/';
                   $this->plugin_path = dirname(__FILE__)."/";
                   define('GDBROKENREPORT_URL', $this->plugin_url);
                   define('GDBROKENREPORT_PATH', $this->plugin_path);
               }
   
               function install_plugin() {
                   $this->o = get_option('gd-broken-report');
   
                   if ($this->o["build"] < $this->default_options["build"]) { }
   
                   if (!is_array($this->o)) {
                       update_option('gd-broken-report', $this->default_options);
                       $this->o = get_option('gd-broken-report');
                   }
                   else {
                       $this->o = gdFunctionsGDBR::upgrade_settings($this->o, $this->default_options);
   
                       $this->o["version"] = $this->default_options["version"];
                       $this->o["date"] = $this->default_options["date"];
                       $this->o["status"] = $this->default_options["status"];
                       $this->o["build"] = $this->default_options["build"];
   
                       update_option('gd-broken-report', $this->o);
                   }
               }
   
               function actions_filters() {
                   add_action('init', array(&$this, 'init'));
   
                   add_action('admin_init', array(&$this, 'admin_init'));
                   add_action('admin_head', array(&$this, 'admin_head'));
                   add_action('admin_menu', array(&$this, 'admin_menu'));
   
                   add_filter('the_content', array(&$this, 'the_content'));
   
                   add_shortcode(strtolower("gdbrokenreport"), array(&$this, "shortcode_gdbrokenreport"));
                   add_shortcode(strtoupper("gdbrokenreport"), array(&$this, "shortcode_gdbrokenreport"));
               }
   
               function shortcode_gdbrokenreport($atts = array()) {
                   $s = shortcode_atts($this->default_shortcode_gdposttable, $atts);
                   if ($s["post_id"] == 0) {
                       global $post;
                       $post_id = $post->ID;
                   } else $post_id = $s["post_id"];
                   return $this->prepare_report($post_id);
               }
   
               function admin_init() {
                   $this->l = get_locale();
                   if(!empty($this->l)) {
                       $moFile = dirname(__FILE__)."/languages/gd-broken-report-".$this->l.".mo";
                       if (@file_exists($moFile) && is_readable($moFile)) load_textdomain('gd-broken-report', $moFile);
                   }
               }
   
               function the_content($content) {
                   global $post;
   
                   if (is_admin() || $this->is_bot) return $content;
   
                   if (!is_feed()) {
                       if ((is_single() && $this->o["auto_insert_single"] == 1) ||
                           (is_page() && $this->o["auto_insert_page"] == 1) ||
                           (is_home() && $this->o["auto_insert_front"] == 1) ||
                           (is_archive() && $this->o["auto_insert_archive"] == 1) ||
                           (is_search() && $this->o["auto_insert_search"] == 1)
                       ) {
                           if ($this->o["exclude_categories"] != "") {
                               $cats = explode(",", $this->o["exclude_categories"]);
                               if (in_category($cats)) return $content;
                           }
                           if ($this->o["exclude_posts"] != "") {
                               $posts = explode(",", $this->o["exclude_posts"]);
                               if (is_single($posts)) return $content;
                           }
                           if (is_page() && $this->o["exclude_pages"] != "") {
                               $pages = explode(",", $this->o["exclude_pages"]);
                               if (is_page($pages)) return $content;
                           }
                           $content .= $this->prepare_report($post->ID);
                       }
                   }
   
                   return $content;
               }
   
               function prepare_report($post_id) {
                   $report = "";
                   $report_status = get_post_meta($post_id, "gd_broken_report", true);
                   if ($report_status == "reported") {
                       $report = file_get_contents($this->plugin_path."integrate/already_reported.txt");
                   }
                   else {
                       $report_url = add_query_arg("report", $post_id);
                       $report = file_get_contents($this->plugin_path."integrate/report_broken.txt");
                       $report = str_replace('%URL%', $report_url, $report);
                   }
                   return $report;
               }
   
               function init() {
                   if (is_admin() && isset($_GET["page"])) {
                       if ($_GET["page"] == "gd-broken-report/gd-broken-report.php") {
                           $this->admin_plugin = true;
                       }
                   }
                   if (isset($_GET["report"])) {
                       $post_id = $_GET["report"];
                       update_post_meta($post_id, "gd_broken_report", "reported");
   
                       $email = file_get_contents($this->plugin_path."templates/report_email.txt");
                       $email = str_replace('%POST_ID%', $post_id, $email);
                       $email = str_replace('%POST_URL%', get_permalink($post_id), $email);
                       $email = str_replace('%POST_EDIT%', trailingslashit(get_bloginfo("wpurl"))."wp-admin/post.php?action=edit&post=".$post_id, $email);
   
       /*
       WRONG http://videos.irishbloke.net/wp-admin/post.php?action=delete&post=907&_wpnonce=e0b331334f
       RIGHT http://videos.irishbloke.net/wp-admin/post.php?action=delete&post=907&_wpnonce=114cac0ffc
       */
   
        if (current_user_can('edit_post', $post->ID)){
           $POST_DEL= trailingslashit(get_bloginfo("wpurl")).wp_nonce_url("wp-admin/post.php?action=delete&post=$post_id",'delete-post_'.$post->ID);    
   
           $POST_DEL=str_replace('&','&',$POST_DEL);
   
           $email=str_replace('%POST_DEL%',$POST_DEL,$email);
   
       }
   
                       wp_mail($this->o["report_email"], $this->o["report_email_subject"], $email, 'From: '.get_option('blogname').' <'.get_option('admin_email').'>');
   
                       $url = remove_query_arg("report");
                       wp_redirect($url);
                       exit;
                   }
                   $this->detect_bot();
               }
   
               function admin_head() {
                   if ($this->admin_plugin) {
                       wp_admin_css('css/dashboard');
                       echo('<link rel="stylesheet" href="'.$this->plugin_url.'css/admin.css" type="text/css" media="screen" />');
                   }
               }
   
               function admin_menu() {
                   add_options_page('GD Broken Report', "GD Broken Report", 10, __FILE__, array(&$this, "admin_menu_front"));
               }
   
               function admin_menu_front() {
                   $options = $this->o;
                   include($this->plugin_path.'admin/settings.php');
               }
           }
   
           $gdbr_debug = new gdDebugGDBR(GDBROKENREPORT_LOG_PATH);
   
           function wp_gdbr_dump($msg, $obj, $block = "none", $mode = "a+") {
               if (GDBROKENREPORT_DEBUG_ACTIVE) {
                   global $gdbr_debug;
                   $gdbr_debug->dump($msg, $obj, $block, $mode);
               }
           }
   
           $gdbr = new GDBrokenReport();
   
           /**
            * Render broken report block. Can be used for manual integration.
            *
            * @global object $post current post object within the loop
            * @global object $gdbr main plugin object
            * @param int $post_id id of the post to use
            * @param bool $echo echo results or return it as a string
            * @return string html with rendered contents
            */
           function gd_broken_report($post_id = 0, $echo = true) {
               global $post, $gdbr;
               if ($post_id == 0) $post_id = $post->ID;
   
               if ($echo) echo $gdbr->prepare_report($post_id);
               else return $gdbr->prepare_report($post_id);
           }
       }
   
       ?>
       ```
   

Viewing 2 replies - 1 through 2 (of 2 total)

The topic ‘Need help with “wp_nonce_url()” function keep getting same URL’ is closed
to new replies.

## Tags

 * [admin](https://wordpress.org/support/topic-tag/admin/)
 * [wp_nonce_url](https://wordpress.org/support/topic-tag/wp_nonce_url/)

 * In: [Fixing WordPress](https://wordpress.org/support/forum/how-to-and-troubleshooting/)
 * 2 replies
 * 1 participant
 * Last reply from: [irishbloke](https://wordpress.org/support/users/irishbloke/)
 * Last activity: [16 years, 9 months ago](https://wordpress.org/support/topic/need-help-with-wp_nonce_url-function-keep-getting-same-url/#post-1194729)
 * Status: not resolved

## Topics

### Topics with no replies

### Non-support topics

### Resolved topics

### Unresolved topics

### All topics
