Version Description
- Fix meta tag redirect method. Was broken because of new method of checking redirects with less query calls. (12/16/10)
- Fix php code errors - still had some debugging code live that will cause some users to have problems.(12/16/10)
Download this release
Release Info
Developer | prophecy2040 |
Plugin | Quick Page/Post Redirect Plugin |
Version | 3.2.2 |
Comparing to | |
See all releases |
Code changes from version 3.2 to 3.2.2
- page_post_redirect_plugin.php +128 -138
- readme.txt +22 -13
page_post_redirect_plugin.php
CHANGED
@@ -6,38 +6,10 @@ Description: Redirect Pages or Posts to another page or post or external locatio
|
|
6 |
Author: Don Fischer
|
7 |
Author URI: http://www.fischercreativemedia.com/
|
8 |
Donate link: http://www.fischercreativemedia.com/wordpress-plugins/donate/
|
9 |
-
Version: 3.2
|
10 |
|
11 |
Version info:
|
12 |
-
|
13 |
-
- re-write functions to consolidate queries. (12/10/2010)
|
14 |
-
- added new filters for New menu structure to filter wp_nav_menu menus as well as old wp_page_menus functions. (12/10/2010)
|
15 |
-
- cleaned up new window and nofollow code to work more consistently. (12/10/2010)
|
16 |
-
3.1 - Re-issue of 2.1 for immediate fix of issue with the 3.0 version.(6/21/2010)
|
17 |
-
3.0 - Enhance Filter to reduce number of DB calls. (06/20/10)
|
18 |
-
2.1 - Fix Bug - Open in New Window would not work unless Show Link URL was also selected. (3/12/2010)
|
19 |
-
- Fix Bug - Add rel=nofollow would not work if Open in a New Window was not selected. (3/13/2010)
|
20 |
-
- Fix Bug - Show Link, Add nofollow and Open in New Window would still work when redirect not active. (3/13/2010)
|
21 |
-
- Added new preg_match_all and preg_replace calls to add target and nofollow links - more effecient and accuarte - noticed some cases where old funtion would add the items if a redirect link had the same URL. (3/13/2010)
|
22 |
-
2.0 - Code Cleanup. (2/28/2010)
|
23 |
-
- Fix WARNING and NOTICE messages that some people may have been receiving about objects and undefined variables. (2/28/2010)
|
24 |
-
1.9 - Add 'Open in New Window' Feature. (2/20/2010)
|
25 |
-
- Add 'rel=nofollow' option for links that will redirect. (2/20/2010)
|
26 |
-
- Add 'rewrite url/permalink' option to hide the regular link and replace it with the new re-write link. (2/20/2010)
|
27 |
-
- Hide Custom Field Meta Data to clean up the custom fields.
|
28 |
-
1.8 - Added a new 301 Redirect Page to allow adding of additional redirects that do not have Pages or Posts created for them. Based on Scott Nelle's Simple 301 Redirects plugin.(12/28/2009)
|
29 |
-
1.7 - Small fix to correct the Meta Redirect - moved "exit" command to end of "addmetatohead_theme" function. And also fix Page redirect. (9/8/2009)
|
30 |
-
1.6.1 - Small fix to correct the same problem as 1.6 for Category and Archive pages (9/1/2009)
|
31 |
-
1.6 - Fix wrongful redirect when the first blog post on home page (main blog page) has a redirect set up - this was redirecting the
|
32 |
-
entire page incorrectly. (9/1/2009)
|
33 |
-
1.5 - Re-Write plugin core function to hook WP at a later time to take advantage of the POST function - no sense re-creating the wheel.
|
34 |
-
Can have page/post as draft and still redirect - but ONLY after the post/page has first been published and
|
35 |
-
then re-saved as draft (this will hopefully be a fix for a later version). (8/31/2009)
|
36 |
-
1.4 - Add exit after header redirect function - needed on some servers and browsers. (8/19/2009)
|
37 |
-
1.3 - Add Meta Re-fresh option (7/26/2009)
|
38 |
-
1.2 - Add easy Post/Page Edit Box (7/25/2009)
|
39 |
-
1.1 - Fix redirect for off site links (7/7/2009)
|
40 |
-
1.0 - Plugin Release (7/1/2009)
|
41 |
|
42 |
Copyright (C) 2009/2010 Donald J. Fischer
|
43 |
|
@@ -54,10 +26,6 @@ Version info:
|
|
54 |
You should have received a copy of the GNU General Public License
|
55 |
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
56 |
*/
|
57 |
-
ini_set('display_errors', 0);
|
58 |
-
ini_set('log_errors', 1);
|
59 |
-
ini_set('error_log', dirname(__FILE__) . '/error_log.txt');
|
60 |
-
error_reporting( E_ALL & ~E_NOTICE );
|
61 |
|
62 |
//=======================================
|
63 |
// Redirect Class (for non page post redirects).
|
@@ -182,6 +150,13 @@ Version info:
|
|
182 |
global $ppr_url;
|
183 |
global $ppr_url_rewrite;
|
184 |
global $ppr_type;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
185 |
|
186 |
// Actions & Filters
|
187 |
//----------
|
@@ -190,6 +165,8 @@ Version info:
|
|
190 |
add_action('template_redirect','ppr_do_redirect', 1, 2);
|
191 |
add_action('init', 'ppr_init_metaclean', 1);
|
192 |
add_action('wp','ppr_new_nav_menu');
|
|
|
|
|
193 |
if (isset($redirect_plugin)) {
|
194 |
add_action('init', array($redirect_plugin,'redirect'), 1); // add the redirect action, high priority
|
195 |
add_action('admin_menu', array($redirect_plugin,'create_menu')); // create the menu
|
@@ -198,66 +175,96 @@ Version info:
|
|
198 |
|
199 |
// Functions
|
200 |
//----------
|
201 |
-
function
|
202 |
-
|
203 |
-
|
204 |
-
|
205 |
-
|
206 |
-
global $ppr_type;
|
207 |
-
add_filter( 'wp_get_nav_menu_items','ppr_new_nav_menu_fix',1,1);
|
208 |
-
add_filter( 'wp_list_pages','ppr_fix_targetsandrels');
|
209 |
-
add_filter( 'page_link','ppr_filter_pages',20, 2 );
|
210 |
-
add_filter( 'post_link','ppr_filter_pages',20, 2 );
|
211 |
-
return $items;
|
212 |
-
}
|
213 |
-
|
214 |
-
function ppr_new_nav_menu_fix($ppr){
|
215 |
-
global $ppr_nofollow;
|
216 |
-
global $ppr_newindow;
|
217 |
-
global $ppr_url;
|
218 |
-
global $ppr_url_rewrite;
|
219 |
-
global $ppr_type;
|
220 |
-
global $wpdb;
|
221 |
-
$thefirstppr = array();
|
222 |
-
$select_tiems = $wpdb->get_results("SELECT post_id,meta_key,meta_value FROM $wpdb->postmeta WHERE (meta_key='_pprredirect_type' OR meta_key='_pprredirect_url' OR meta_key='_pprredirect_rewritelink' OR meta_key = '_pprredirect_active' OR meta_key='_pprredirect_newwindow' OR meta_key='_pprredirect_relnofollow') AND meta_value!='' ORDER BY post_id ASC;");
|
223 |
-
foreach($select_tiems as $pprs){
|
224 |
-
$thefirstppr[$pprs->post_id][$pprs->meta_key] = $pprs->meta_value;
|
225 |
-
$thefirstppr[$pprs->post_id]['post_id'] = $pprs->post_id;
|
226 |
}
|
227 |
-
|
228 |
-
if(
|
229 |
-
$
|
230 |
-
|
231 |
-
|
232 |
-
$
|
|
|
233 |
}
|
234 |
-
|
235 |
-
$ppr_url_rewrite[] = $ppitems['post_id'];
|
236 |
-
$ppr_url[$ppitems['post_id']]['URL'] = $ppitems['_pprredirect_url'];
|
237 |
-
}
|
238 |
-
if(isset($ppitems['_pprredirect_active']) && isset($ppitems['_pprredirect_type'])){
|
239 |
-
$ppr_type[$ppitems['post_id']]['type'] = $ppitems['_pprredirect_type'];
|
240 |
-
}
|
241 |
-
|
242 |
}
|
243 |
-
|
244 |
-
|
245 |
-
|
246 |
-
|
247 |
-
|
248 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
249 |
}
|
250 |
-
if(
|
251 |
-
$
|
252 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
253 |
}
|
254 |
-
|
255 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
256 |
}
|
257 |
-
$newmenu[] = $ppd;
|
258 |
}
|
259 |
-
return $newmenu;
|
260 |
-
}
|
261 |
|
262 |
// For WordPress < 2.8 function compatibility
|
263 |
if (!function_exists('esc_attr')) {
|
@@ -265,30 +272,6 @@ function ppr_new_nav_menu_fix($ppr){
|
|
265 |
function esc_url($url){return clean_url( $url );}
|
266 |
}
|
267 |
|
268 |
-
//clean up the Custom Fields to make it prettier on the Edit Page
|
269 |
-
function ppr_init_metaclean() {
|
270 |
-
$thepprversion = get_option('ppr_version');
|
271 |
-
//echo $thepprversion;
|
272 |
-
if ($thepprversion=='3.2') {
|
273 |
-
update_option( 'ppr_version', '3.2' );
|
274 |
-
}else if(in_array($thepprversion,array('1.9','2.0','2.1','3.0','3.1'))) {
|
275 |
-
update_option( 'ppr_version', '3.2' );
|
276 |
-
}else{
|
277 |
-
global $wpdb;
|
278 |
-
//want to make sure older version upgrading still
|
279 |
-
/* //not needed any more
|
280 |
-
$wpdb->query( "UPDATE $wpdb->postmeta SET meta_key = '_pprredirect_active' WHERE meta_key = 'pprredirect_active'" );
|
281 |
-
$wpdb->query( "UPDATE $wpdb->postmeta SET meta_key = '_pprredirect_newwindow' WHERE meta_key = 'pprredirect_newwindow'" );
|
282 |
-
$wpdb->query( "UPDATE $wpdb->postmeta SET meta_key = '_pprredirect_relnofollow' WHERE meta_key = 'pprredirect_relnofollow'" );
|
283 |
-
$wpdb->query( "UPDATE $wpdb->postmeta SET meta_key = '_pprredirect_type' WHERE meta_key = 'pprredirect_type'" );
|
284 |
-
$wpdb->query( "UPDATE $wpdb->postmeta SET meta_key = '_pprredirect_url' WHERE meta_key = 'pprredirect_url'" );
|
285 |
-
wp_cache_flush();
|
286 |
-
*/
|
287 |
-
|
288 |
-
update_option( 'ppr_version', '3.2' );
|
289 |
-
}
|
290 |
-
}
|
291 |
-
|
292 |
function ppr_filter_pages ($link, $post) {
|
293 |
global $ppr_nofollow;
|
294 |
global $ppr_newindow;
|
@@ -317,8 +300,8 @@ function ppr_new_nav_menu_fix($ppr){
|
|
317 |
}
|
318 |
|
319 |
function addmetatohead_theme(){
|
320 |
-
global $
|
321 |
-
$meta_code = '<meta http-equiv="refresh" content="0; URL='.$
|
322 |
echo $meta_code;
|
323 |
exit;//stop loading page so meta can do it's job without rest of page loading.
|
324 |
}
|
@@ -326,31 +309,36 @@ function ppr_new_nav_menu_fix($ppr){
|
|
326 |
function ppr_do_redirect(){
|
327 |
global $post,$wp_query,$ppr_active,$wpdb;
|
328 |
$select_tiems = $wpdb->get_results("SELECT post_id,meta_key,meta_value FROM $wpdb->postmeta WHERE (meta_key='_pprredirect_type' OR meta_key='_pprredirect_url' OR meta_key = '_pprredirect_active') AND meta_value!='' ORDER BY post_id ASC;");
|
329 |
-
|
330 |
-
$
|
331 |
-
|
332 |
-
|
333 |
-
foreach($thefirstppr as $ppitems){
|
334 |
-
if(isset($ppitems['_pprredirect_active']) && isset($ppitems['_pprredirect_url'])){
|
335 |
-
$ppr_url_rewrite[] = $ppitems['post_id'];
|
336 |
-
$ppr_url[$ppitems['post_id']]['URL'] = $ppitems['_pprredirect_url'];
|
337 |
}
|
338 |
-
if(isset($ppitems['_pprredirect_active']) && isset($ppitems['_pprredirect_type'])){
|
339 |
-
$ppr_type[$ppitems['post_id']]['type'] = $ppitems['_pprredirect_type'];
|
340 |
-
}
|
341 |
-
|
342 |
}
|
343 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
344 |
if($wp_query->is_single || $wp_query->is_page ):
|
345 |
$thisidis_current = $post->ID;
|
|
|
346 |
if(isset($ppr_type[$thisidis_current]['type'])){$ppr_types = $ppr_type[$thisidis_current]['type'];}else{$ppr_types = '';}
|
347 |
if(isset($ppr_url[$thisidis_current]['URL'])){$ppr_urls = $ppr_url[$thisidis_current]['URL'];}else{$ppr_urls='';}
|
348 |
-
|
349 |
if( $ppr_urls!=''):
|
350 |
if($ppr_types===0){$ppr_types='200';}
|
351 |
if($ppr_types===''){$ppr_types='302';}
|
352 |
if($ppr_types=='meta'):
|
353 |
//metaredirect
|
|
|
354 |
add_action('wp_head', "addmetatohead_theme",1);
|
355 |
else:
|
356 |
//check for http:// - as full url - then we can just redirect if it is //
|
@@ -359,7 +347,7 @@ function ppr_new_nav_menu_fix($ppr){
|
|
359 |
header('Status: '.$ppr_types);
|
360 |
header('Location: '.$offsite, true, $ppr_types);
|
361 |
exit; //stop loading page
|
362 |
-
}elseif(strpos($ppr_urls, 'www')=== 0){ //
|
363 |
$offsite='http://'.$ppr_urls;
|
364 |
header("Status: $ppr_types");
|
365 |
header("Location: $offsite", true, $ppr_types);
|
@@ -480,17 +468,19 @@ function ppr_new_nav_menu_fix($ppr){
|
|
480 |
$mydata['_pprredirect_active'] = NULL; //turn it off if no URL is set
|
481 |
}
|
482 |
// Add values of $mydata as custom fields
|
483 |
-
|
484 |
-
|
485 |
-
|
486 |
-
|
487 |
-
|
488 |
-
|
489 |
-
|
490 |
-
|
|
|
|
|
|
|
|
|
491 |
}
|
492 |
-
|
493 |
-
if(!$value) delete_post_meta($post->ID, $key); //delete if blank
|
494 |
}
|
495 |
endif;
|
496 |
}
|
6 |
Author: Don Fischer
|
7 |
Author URI: http://www.fischercreativemedia.com/
|
8 |
Donate link: http://www.fischercreativemedia.com/wordpress-plugins/donate/
|
9 |
+
Version: 3.2.2
|
10 |
|
11 |
Version info:
|
12 |
+
See change log in readme.txt file.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
13 |
|
14 |
Copyright (C) 2009/2010 Donald J. Fischer
|
15 |
|
26 |
You should have received a copy of the GNU General Public License
|
27 |
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
28 |
*/
|
|
|
|
|
|
|
|
|
29 |
|
30 |
//=======================================
|
31 |
// Redirect Class (for non page post redirects).
|
150 |
global $ppr_url;
|
151 |
global $ppr_url_rewrite;
|
152 |
global $ppr_type;
|
153 |
+
global $ppr_curr_version;
|
154 |
+
global $ppr_metaurl;
|
155 |
+
$ppr_curr_version = '3.2.1';
|
156 |
+
$ppr_nofollow = array();
|
157 |
+
$ppr_newindow = array();
|
158 |
+
$ppr_url = array();
|
159 |
+
$ppr_url_rewrite = array();
|
160 |
|
161 |
// Actions & Filters
|
162 |
//----------
|
165 |
add_action('template_redirect','ppr_do_redirect', 1, 2);
|
166 |
add_action('init', 'ppr_init_metaclean', 1);
|
167 |
add_action('wp','ppr_new_nav_menu');
|
168 |
+
add_action('plugin_action_links_' . plugin_basename(__FILE__), 'ppr_filter_plugin_actions');
|
169 |
+
add_filter('plugin_row_meta', 'ppr_filter_plugin_links', 10, 2);
|
170 |
if (isset($redirect_plugin)) {
|
171 |
add_action('init', array($redirect_plugin,'redirect'), 1); // add the redirect action, high priority
|
172 |
add_action('admin_menu', array($redirect_plugin,'create_menu')); // create the menu
|
175 |
|
176 |
// Functions
|
177 |
//----------
|
178 |
+
function ppr_filter_plugin_actions($links){
|
179 |
+
$new_links = array();
|
180 |
+
$fcmlink = 'http://www.fischercreativemedia.com/wordpress-plugins';
|
181 |
+
$new_links[] = '<a href="'.$fcmlink.'/donate/">Donate</a>';
|
182 |
+
return array_merge($links,$new_links );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
183 |
}
|
184 |
+
function ppr_filter_plugin_links($links, $file){
|
185 |
+
if ( $file == plugin_basename(__FILE__) ){
|
186 |
+
$adminlink = WP_HOME.'/wp-admin/';
|
187 |
+
$fcmlink = 'http://www.fischercreativemedia.com/wordpress-plugins';
|
188 |
+
$links[] = '<a href="'.$adminlink.'options-general.php?page=redirects-options">Quick Redirects</a>';
|
189 |
+
$links[] = '<a target="_blank" href="'.$fcmlink.'/quick-pagepost-redirect-plugin/">FAQ</a>';
|
190 |
+
$links[] = '<a target="_blank" href="'.$fcmlink.'/donate/">Donate</a>';
|
191 |
}
|
192 |
+
return $links;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
193 |
}
|
194 |
+
|
195 |
+
function ppr_new_nav_menu($items){
|
196 |
+
global $ppr_nofollow;
|
197 |
+
global $ppr_newindow;
|
198 |
+
global $ppr_url;
|
199 |
+
global $ppr_url_rewrite;
|
200 |
+
global $ppr_type;
|
201 |
+
add_filter( 'wp_get_nav_menu_items','ppr_new_nav_menu_fix',1,1);
|
202 |
+
add_filter( 'wp_list_pages','ppr_fix_targetsandrels');
|
203 |
+
add_filter( 'page_link','ppr_filter_pages',20, 2 );
|
204 |
+
add_filter( 'post_link','ppr_filter_pages',20, 2 );
|
205 |
+
return $items;
|
206 |
+
}
|
207 |
+
|
208 |
+
function ppr_new_nav_menu_fix($ppr){
|
209 |
+
global $ppr_nofollow;
|
210 |
+
global $ppr_newindow;
|
211 |
+
global $ppr_url;
|
212 |
+
global $ppr_url_rewrite;
|
213 |
+
global $ppr_type;
|
214 |
+
global $wpdb;
|
215 |
+
$thefirstppr = array();
|
216 |
+
|
217 |
+
$select_tiems = $wpdb->get_results("SELECT post_id,meta_key,meta_value FROM $wpdb->postmeta WHERE (meta_key='_pprredirect_type' OR meta_key='_pprredirect_url' OR meta_key='_pprredirect_rewritelink' OR meta_key = '_pprredirect_active' OR meta_key='_pprredirect_newwindow' OR meta_key='_pprredirect_relnofollow') AND meta_value!='' ORDER BY post_id ASC;");
|
218 |
+
if(!empty($select_tiems)){
|
219 |
+
foreach($select_tiems as $pprs){
|
220 |
+
$thefirstppr[$pprs->post_id][$pprs->meta_key] = $pprs->meta_value;
|
221 |
+
$thefirstppr[$pprs->post_id]['post_id'] = $pprs->post_id;
|
222 |
+
}
|
223 |
}
|
224 |
+
if(!empty($thefirstppr)){
|
225 |
+
foreach($thefirstppr as $ppitems){
|
226 |
+
if(isset($ppitems['_pprredirect_active']) && isset($ppitems['_pprredirect_newwindow'])){
|
227 |
+
$ppr_newindow[] = $ppitems['post_id'];
|
228 |
+
}
|
229 |
+
if(isset($ppitems['_pprredirect_active']) && isset($ppitems['_pprredirect_relnofollow'])){
|
230 |
+
$ppr_nofollow[] = $ppitems['post_id'];
|
231 |
+
}
|
232 |
+
if(isset($ppitems['_pprredirect_active']) && isset($ppitems['_pprredirect_rewritelink']) && isset($ppitems['_pprredirect_url'])){
|
233 |
+
$ppr_url_rewrite[] = $ppitems['post_id'];
|
234 |
+
$ppr_url[$ppitems['post_id']]['URL'] = $ppitems['_pprredirect_url'];
|
235 |
+
}
|
236 |
+
if(isset($ppitems['_pprredirect_active']) && isset($ppitems['_pprredirect_type'])){
|
237 |
+
$ppr_type[$ppitems['post_id']]['type'] = $ppitems['_pprredirect_type'];
|
238 |
+
}
|
239 |
+
}
|
240 |
+
}
|
241 |
+
$newmenu = array();
|
242 |
+
if(!empty($ppr)){
|
243 |
+
foreach($ppr as $ppd){
|
244 |
+
if(in_array($ppd->object_id,$ppr_newindow)){
|
245 |
+
$ppd->target = '_blank';
|
246 |
+
$ppd->classes[] = 'ppr-new-window';
|
247 |
+
}
|
248 |
+
if(in_array($ppd->object_id,$ppr_nofollow)){
|
249 |
+
$ppd->xfn = 'nofollow';
|
250 |
+
$ppd->classes[] = 'ppr-nofollow';
|
251 |
+
}
|
252 |
+
if(in_array($ppd->object_id,$ppr_url_rewrite)){
|
253 |
+
$ppd->url = $ppr_url[$ppd->object_id]['URL'];
|
254 |
+
}
|
255 |
+
$newmenu[] = $ppd;
|
256 |
+
}
|
257 |
}
|
258 |
+
return $newmenu;
|
259 |
+
}
|
260 |
+
|
261 |
+
function ppr_init_metaclean() {
|
262 |
+
global $ppr_curr_version;
|
263 |
+
$thepprversion = get_option('ppr_version');
|
264 |
+
if($thepprversion != $ppr_curr_version){
|
265 |
+
update_option( 'ppr_version', $ppr_curr_version );
|
266 |
}
|
|
|
267 |
}
|
|
|
|
|
268 |
|
269 |
// For WordPress < 2.8 function compatibility
|
270 |
if (!function_exists('esc_attr')) {
|
272 |
function esc_url($url){return clean_url( $url );}
|
273 |
}
|
274 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
275 |
function ppr_filter_pages ($link, $post) {
|
276 |
global $ppr_nofollow;
|
277 |
global $ppr_newindow;
|
300 |
}
|
301 |
|
302 |
function addmetatohead_theme(){
|
303 |
+
global $ppr_metaurl;
|
304 |
+
$meta_code = '<meta http-equiv="refresh" content="0; URL='.$ppr_metaurl.'" />';
|
305 |
echo $meta_code;
|
306 |
exit;//stop loading page so meta can do it's job without rest of page loading.
|
307 |
}
|
309 |
function ppr_do_redirect(){
|
310 |
global $post,$wp_query,$ppr_active,$wpdb;
|
311 |
$select_tiems = $wpdb->get_results("SELECT post_id,meta_key,meta_value FROM $wpdb->postmeta WHERE (meta_key='_pprredirect_type' OR meta_key='_pprredirect_url' OR meta_key = '_pprredirect_active') AND meta_value!='' ORDER BY post_id ASC;");
|
312 |
+
if(!empty($select_tiems)){
|
313 |
+
foreach($select_tiems as $pprs){
|
314 |
+
$thefirstppr[$pprs->post_id][$pprs->meta_key] = $pprs->meta_value;
|
315 |
+
$thefirstppr[$pprs->post_id]['post_id'] = $pprs->post_id;
|
|
|
|
|
|
|
|
|
316 |
}
|
|
|
|
|
|
|
|
|
317 |
}
|
318 |
+
if(!empty($thefirstppr)){
|
319 |
+
foreach($thefirstppr as $ppitems){
|
320 |
+
if(isset($ppitems['_pprredirect_active']) && isset($ppitems['_pprredirect_url'])){
|
321 |
+
$ppr_url_rewrite[] = $ppitems['post_id'];
|
322 |
+
$ppr_url[$ppitems['post_id']]['URL'] = $ppitems['_pprredirect_url'];
|
323 |
+
}
|
324 |
+
if(isset($ppitems['_pprredirect_active']) && isset($ppitems['_pprredirect_type'])){
|
325 |
+
$ppr_type[$ppitems['post_id']]['type'] = $ppitems['_pprredirect_type'];
|
326 |
+
}
|
327 |
+
|
328 |
+
}
|
329 |
+
}
|
330 |
if($wp_query->is_single || $wp_query->is_page ):
|
331 |
$thisidis_current = $post->ID;
|
332 |
+
global $ppr_metaurl;
|
333 |
if(isset($ppr_type[$thisidis_current]['type'])){$ppr_types = $ppr_type[$thisidis_current]['type'];}else{$ppr_types = '';}
|
334 |
if(isset($ppr_url[$thisidis_current]['URL'])){$ppr_urls = $ppr_url[$thisidis_current]['URL'];}else{$ppr_urls='';}
|
335 |
+
|
336 |
if( $ppr_urls!=''):
|
337 |
if($ppr_types===0){$ppr_types='200';}
|
338 |
if($ppr_types===''){$ppr_types='302';}
|
339 |
if($ppr_types=='meta'):
|
340 |
//metaredirect
|
341 |
+
$ppr_metaurl = $ppr_urls;
|
342 |
add_action('wp_head', "addmetatohead_theme",1);
|
343 |
else:
|
344 |
//check for http:// - as full url - then we can just redirect if it is //
|
347 |
header('Status: '.$ppr_types);
|
348 |
header('Location: '.$offsite, true, $ppr_types);
|
349 |
exit; //stop loading page
|
350 |
+
}elseif(strpos($ppr_urls, 'www')=== 0){ //check if they have full url but did not put http://
|
351 |
$offsite='http://'.$ppr_urls;
|
352 |
header("Status: $ppr_types");
|
353 |
header("Location: $offsite", true, $ppr_types);
|
468 |
$mydata['_pprredirect_active'] = NULL; //turn it off if no URL is set
|
469 |
}
|
470 |
// Add values of $mydata as custom fields
|
471 |
+
if(!empty($mydata)){
|
472 |
+
foreach ($mydata as $key => $value) { //Let's cycle through the $mydata array!
|
473 |
+
if( $post->post_type == 'revision' ) return; //don't store custom data twice
|
474 |
+
$value = implode(',', (array)$value); //if $value is an array, make it a CSV (unlikely)
|
475 |
+
|
476 |
+
if(get_post_meta($post->ID, $key, FALSE)) { //if the custom field already has a value
|
477 |
+
update_post_meta($post->ID, $key, $value);
|
478 |
+
} else { //if the custom field doesn't have a value
|
479 |
+
add_post_meta($post->ID, $key, $value);
|
480 |
+
}
|
481 |
+
|
482 |
+
if(!$value) delete_post_meta($post->ID, $key); //delete if blank
|
483 |
}
|
|
|
|
|
484 |
}
|
485 |
endif;
|
486 |
}
|
readme.txt
CHANGED
@@ -3,27 +3,31 @@ Contributors: Don Fischer
|
|
3 |
Donate link: http://www.fischercreativemedia.com/wordpress-plugins/donate/
|
4 |
Tags: redirect, 301, 302, meta, post, plugin, page, forward, re-direct, nofollow, wpmu, menu links, posts, pages, admin, 404
|
5 |
Requires at least: 2.5
|
6 |
-
Tested up to: 3.1 beta
|
7 |
-
Stable tag: 3.2
|
8 |
|
9 |
-
Redirect Pages/Posts to another page/post or external URL. Adds edit box to admin edit so user can specify the redirect Location and type.
|
|
|
|
|
|
|
10 |
|
11 |
== Description ==
|
|
|
|
|
12 |
Quick Page/Post Redirect Plugin redirects WordPress Pages or Posts to another location quickly.
|
13 |
-
It adds an option box to the edit section where you can specify the redirect location and type of redirect that you want, temporary, permanent, or meta. See
|
14 |
|
15 |
= Features: =
|
16 |
-
*
|
17 |
-
*
|
18 |
-
*
|
19 |
-
*
|
20 |
-
*
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
PLEASE NOTE: At this time, the a new page or post needs to be Published in order for the redirect to happen. It WILL work on a DRAFT Status Post/Page ONLY, and I mean ONLY, if the Post/Page has FIRST been Published and the re-saved as a Draft - WordPress does not set up the post meta for the permalink until after first publish for some reason - will hopefully fix this in the future.
|
25 |
|
26 |
This plugin is also not compatible with WordPress versions less than 2.5.
|
|
|
27 |
|
28 |
= TROUBLESHOOTING: =
|
29 |
* If you check the box for "Show Redirect URL below" on the edit page, please note that you MUST use the full URL in the Redirect URL box. If you do not, you may experience some odd links and 404 pages, as this option cahnges the Permalink for the page/post to the EXACT URL you eneter in that field. (i.e., if you enter '2' in the field, it will redirect to 'http://2' which is not the same as 'http://yoursite.com/?p=2').
|
@@ -109,6 +113,11 @@ Yes, you can, but you do not always need to. If you are redirecting to an extern
|
|
109 |
3. Menu for the Quick 301 Redirects page - located in the settings menu.
|
110 |
|
111 |
== Changelog ==
|
|
|
|
|
|
|
|
|
|
|
112 |
= 3.2 =
|
113 |
* remove functions ppr_linktotarget, ppr_linktonorel, ppr_redirectto and ppr_linktometa.(12/10/2010)
|
114 |
* re-write functions to consolidate queries. (12/10/2010)
|
3 |
Donate link: http://www.fischercreativemedia.com/wordpress-plugins/donate/
|
4 |
Tags: redirect, 301, 302, meta, post, plugin, page, forward, re-direct, nofollow, wpmu, menu links, posts, pages, admin, 404
|
5 |
Requires at least: 2.5
|
6 |
+
Tested up to: 3.1 beta 2
|
7 |
+
Stable tag: 3.2.2
|
8 |
|
9 |
+
Redirect Pages/Posts to another page/post or external URL. Adds edit box to admin edit area so user can specify the redirect Location and type.
|
10 |
+
|
11 |
+
== Upgrade Notice ==
|
12 |
+
= Version 3.2.2 fixes some minor code errors and the meta redirect function =
|
13 |
|
14 |
== Description ==
|
15 |
+
= Version 3.2.2 fixes some minor code errors and the meta redirect function =
|
16 |
+
|
17 |
Quick Page/Post Redirect Plugin redirects WordPress Pages or Posts to another location quickly.
|
18 |
+
It adds an option box to the edit section where you can specify the redirect location and type of redirect that you want, temporary, permanent, or meta. See below for additional features added.
|
19 |
|
20 |
= Features: =
|
21 |
+
* Works with new WordPress menus as of plugin version 3.2
|
22 |
+
* you can open a redirect a page or menu link to open in a new window
|
23 |
+
* You can add a *rel="nofollow"* attribute to the page or menu link of the redirect
|
24 |
+
* You can completely re-write the URL for the redirct so it takes the place of the default page URL (rewrite the href link)
|
25 |
+
* You can redirect without needing to create a Page or Post. This is very useful for sites that were converted to WordPress and have old links that create 404 errors (see FAQs for more information). This option does not allow for open in a new window or nofollow functions.
|
26 |
+
* redirect Location can be to another WordPress page/post or any other website with an external URL.
|
27 |
+
* Redirect can use a full URL path, the post or page ID, permalink or page-name (not available for Quick Redirects method).
|
|
|
|
|
28 |
|
29 |
This plugin is also not compatible with WordPress versions less than 2.5.
|
30 |
+
=PLEASE NOTE:= A new page or post needs to be Published in order for the redirect to happen. It WILL work on a DRAFT Status Post/Page ONLY, and I mean ONLY, if the Post/Page has FIRST been Published and the re-saved as a Draft.
|
31 |
|
32 |
= TROUBLESHOOTING: =
|
33 |
* If you check the box for "Show Redirect URL below" on the edit page, please note that you MUST use the full URL in the Redirect URL box. If you do not, you may experience some odd links and 404 pages, as this option cahnges the Permalink for the page/post to the EXACT URL you eneter in that field. (i.e., if you enter '2' in the field, it will redirect to 'http://2' which is not the same as 'http://yoursite.com/?p=2').
|
113 |
3. Menu for the Quick 301 Redirects page - located in the settings menu.
|
114 |
|
115 |
== Changelog ==
|
116 |
+
= 3.2.2 =
|
117 |
+
* Fix meta tag redirect method. Was broken because of new method of checking redirects with less query calls. (12/16/10)
|
118 |
+
* Fix php code errors - still had some debugging code live that will cause some users to have problems.(12/16/10)
|
119 |
+
= 3.2.1 =
|
120 |
+
* limited test release - testing for some of 3.2.2 release fixes. (12/14/10)
|
121 |
= 3.2 =
|
122 |
* remove functions ppr_linktotarget, ppr_linktonorel, ppr_redirectto and ppr_linktometa.(12/10/2010)
|
123 |
* re-write functions to consolidate queries. (12/10/2010)
|