WordPress plugin written for me broken with WP upgrade…
-
Let me start by saying, I’m not sure how long this plugin hasn’t worked. It’s been a few months since I’ve paid attention to it, but it was never deactivated, so I’m thinking since upgrading to 3.4 or 3.5.
The gist of it is when a Post is posted it pushes the tag/term, which I only use for the names of basketball players, to one of my custom data tables. From that table, I get information to be viewed on the player’s Tag archive page above the posts about the player.
Now, when I post, I get the following error messages:
Warning: Missing argument 2 for wpdb::prepare(), called in /home/jwrbloom/public_html/wp-content/plugins/save-on-post/save-on-post.php on line 69 and defined in /home/jwrbloom/public_html/wp-includes/wp-db.php on line 990
Warning: Missing argument 2 for wpdb::prepare(), called in /home/jwrbloom/public_html/wp-content/plugins/save-on-post/save-on-post.php on line 69 and defined in /home/jwrbloom/public_html/wp-includes/wp-db.php on line 990
Warning: Missing argument 2 for wpdb::prepare(), called in /home/jwrbloom/public_html/wp-content/plugins/save-on-post/save-on-post.php on line 69 and defined in /home/jwrbloom/public_html/wp-includes/wp-db.php on line 990
Warning: Cannot modify header information – headers already sent by (output started at /home/jwrbloom/public_html/wp-includes/wp-db.php:990) in /home/jwrbloom/public_html/wp-includes/pluggable.php on line 876
It still posts the Post, but it doesn’t push the tag/term to the data table as I need it. It also just sticks on the otherwise blank page, so I have to go back or hit my Dashboard bookmark.
I’ve made no changes to the code below. I started writing it and received a lot of help on it. The guy who helped me thought through the autosave, as well as my inability to make it work through an array of tags/terms. The functions being referenced in the error messages, I really can’t make much of them, so I’d rather not try without getting help.
define('S_DB','a_playerRank'); add_action('save_post', '__and_upd_other'); add_action('edit_post', '__and_upd_other'); function __and_upd_other( $post_id ) { global $wpdb; if ( defined('DOING_AUTOSAVE') && DOING_AUTOSAVE ) return $post_id; if ( 'page' == $_POST['post_type'] ) { if ( !current_user_can( 'edit_page', $post_id ) ) return $post_id; } else { if ( !current_user_can( 'edit_post', $post_id ) ) return $post_id; } $post_tag = ($_POST['tax_input']['post_tag']) ? $_POST['tax_input']['post_tag'] : ''; if('' != $post_tag) : $post_tag = explode(',',$post_tag); $ptc = 0; // Build string of OR matches for the query foreach($post_tag as $tag) { $ptc++; if($ptc == 1) { $tt = "terms.name = '$tag'"; } else { $tt .= " OR terms.name = '$tag'"; } } // Get the tag ids and slugs for the saved post $tags = $wpdb->get_results(" SELECT terms.term_id, terms.slug FROM $wpdb->terms as terms JOIN $wpdb->term_taxonomy as tax ON tax.term_id = terms.term_id JOIN $wpdb->term_relationships as rel ON rel.term_taxonomy_id = tax.term_taxonomy_id WHERE rel.object_id = '$post_id' AND tax.taxonomy = 'post_tag' AND $tt ", ARRAY_A); // Create 2 empty strings $mstr = $lstr = ''; // Build a case string for the next query foreach($tags as $t => $tag) { $mstr .= "when '$tag[slug]' then '$tag[term_id]' "; $lstr .= "'$tag[slug]',"; } // Unset unused data unset($tags); // Remove the last comma off the second string $lstr = substr($lstr,0,-1); // Create the a nifty query to do multiple updates in one query $wpdb->query( $wpdb->prepare(" UPDATE ".S_DB." SET ".S_DB.".wpID = case wpSlug $mstr end WHERE ".S_DB.".wpSlug in($lstr) ")); endif; return; }
- The topic ‘WordPress plugin written for me broken with WP upgrade…’ is closed to new replies.