Version Description
- Added 'Open in New Window' Feature. (2/20/2010)
- Added 'rel="nofollow"' attribute option for links that will redirect. (2/20/2010)
- Added 'rewrite url/permalink' option to hide the regular link and replace it with the new re-write link anywhere the link is displayed on the site. (2/20/2010)
- Hid the Custom Field Meta Data that the plugin uses - this is just to clean up the custom fields box. (2/20/2010)
Download this release
Release Info
Developer | prophecy2040 |
Plugin | Quick Page/Post Redirect Plugin |
Version | 1.9 |
Comparing to | |
See all releases |
Code changes from version 1.8 to 1.9
- page_post_redirect_plugin.php +210 -30
- readme.txt +27 -10
- screenshot-1.jpg +0 -0
- screenshot.jpg +0 -0
page_post_redirect_plugin.php
CHANGED
@@ -5,9 +5,13 @@ Plugin URI: http://fischercreativemedia.com/wordpress-plugins/quick-pagepost-red
|
|
5 |
Description: Redirect Pages or Posts to another location quickly. Adds a redirect box to the page or post edit page where you can specify the redirect Location and type which can be to another WordPress page/post or an external URL. Additional 301 Redirects can also be added for non-existant posts or pages - helpful for sites converted to WordPress.
|
6 |
Author: Don Fischer
|
7 |
Author URI: http://www.fischercreativemedia.com/
|
8 |
-
Version: 1.
|
9 |
|
10 |
Version info:
|
|
|
|
|
|
|
|
|
11 |
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)
|
12 |
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)
|
13 |
1.6.1 - Small fix to correct the same problem as 1.6 for Category and Archive pages (9/1/2009)
|
@@ -93,12 +97,10 @@ Version info:
|
|
93 |
if (!empty($redirects)) {
|
94 |
foreach ($redirects as $request => $destination) {
|
95 |
$output .= '
|
96 |
-
|
97 |
<tr>
|
98 |
<td><input type="text" name="quickppr_redirects[request][]" value="'.$request.'" style="width:35em" /> » </td>
|
99 |
<td><input type="text" name="quickppr_redirects[destination][]" value="'.$destination.'" style="width:35em;" /></td>
|
100 |
</tr>
|
101 |
-
|
102 |
';
|
103 |
}
|
104 |
} // end if
|
@@ -156,13 +158,21 @@ Version info:
|
|
156 |
//----------
|
157 |
add_action('admin_menu', 'add_edit_box_ppr');
|
158 |
add_action('save_post', 'ppr_save_postdata', 1, 2); // save the custom fields
|
159 |
-
add_action('wp','ppr_do_redirect', 1, 2);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
160 |
if (isset($redirect_plugin)) {
|
161 |
add_action('init', array($redirect_plugin,'redirect'), 1); // add the redirect action, high priority
|
162 |
add_action('admin_menu', array($redirect_plugin,'create_menu')); // create the menu
|
163 |
if (isset($_POST['submit_301'])) {$redirect_plugin->save_redirects($_POST['quickppr_redirects']);} //if submitted, process the data
|
164 |
}
|
165 |
-
|
|
|
166 |
// Variables
|
167 |
//----------
|
168 |
global $wpdb;
|
@@ -170,6 +180,115 @@ Version info:
|
|
170 |
|
171 |
// Functions
|
172 |
//----------
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
173 |
function addmetatohead_theme(){
|
174 |
global $ppr_url;
|
175 |
$meta_code = '<meta http-equiv="refresh" content="0; URL='.$ppr_url.'" />';
|
@@ -181,9 +300,9 @@ Version info:
|
|
181 |
global $post,$wp_query,$ppr_url,$ppr_active,$ppr_url,$ppr_type;
|
182 |
if($wp_query->is_single || $wp_query->is_page ):
|
183 |
$thisidis_current= $post->ID;
|
184 |
-
$ppr_active=get_post_meta($thisidis_current,'
|
185 |
-
$ppr_url=get_post_meta($thisidis_current,'
|
186 |
-
$ppr_type=get_post_meta($thisidis_current,'
|
187 |
|
188 |
if( $ppr_active==1 && $ppr_url!='' ):
|
189 |
if($ppr_type===0){$ppr_type='200';}
|
@@ -234,8 +353,8 @@ Version info:
|
|
234 |
// Adds a custom section to the Post and Page edit screens
|
235 |
function add_edit_box_ppr() {
|
236 |
if( function_exists( 'add_meta_box' )) {
|
237 |
-
add_meta_box( 'edit-box-ppr', __( 'Quick Page/Post Redirect', '
|
238 |
-
add_meta_box( 'edit-box-ppr', __( 'Quick Page/Post Redirect', '
|
239 |
}
|
240 |
}
|
241 |
|
@@ -248,18 +367,19 @@ Version info:
|
|
248 |
$ppr_option4='';
|
249 |
$ppr_option5='';
|
250 |
// Use nonce for verification ... ONLY USE ONCE!
|
251 |
-
|
|
|
252 |
// The actual fields for data entry
|
253 |
-
|
254 |
-
echo '<input type="checkbox" name="
|
255 |
-
echo '<label for="
|
256 |
-
|
257 |
-
echo '<label for="pprredirect_url">' . __(" Redirect URL
|
258 |
-
if(get_post_meta($post->ID, '
|
259 |
echo '<input type="text" style="width:75%;margin-top:2px;margin-bottom:2px;" name="pprredirect_url" value="'.$pprredirecturl.'" /><br />(i.e., <code>http://example.com</code> or <code>/somepage/</code> or <code>p=15</code> or <code>155</code>. Use <b>FULL URL</b> <i>including</i> <code>http://</code> for all external <i>and</i> meta redirects. )<br /><br />';
|
260 |
|
261 |
-
echo '<label for="pprredirect_type">' . __(" Type of Redirect:", '
|
262 |
-
if(get_post_meta($post->ID, '
|
263 |
switch($pprredirecttype):
|
264 |
case "":
|
265 |
$ppr_option2=" selected";//default
|
@@ -278,15 +398,18 @@ Version info:
|
|
278 |
break;
|
279 |
endswitch;
|
280 |
|
281 |
-
echo '<select style="margin-top:2px;margin-bottom:2px;" name="pprredirect_type"><option value="301" '.$ppr_option1.'>301 Permanent</option><option value="302" '.$ppr_option2.'>302 Temporary</option><option value="307" '.$ppr_option3.'>307 Temporary</option><option value="meta" '.$ppr_option5.'>Meta Redirect</option></select> (Default is 302)<br /><br />';
|
282 |
-
|
283 |
}
|
|
|
284 |
// When the post is saved, saves our custom data
|
285 |
function ppr_save_postdata($post_id, $post) {
|
286 |
-
|
|
|
287 |
// verify authorization
|
288 |
if(isset($_POST['pprredirect_noncename'])){
|
289 |
-
if ( !wp_verify_nonce( $_POST['pprredirect_noncename'], plugin_basename(__FILE__) )) {
|
|
|
290 |
return $post->ID;
|
291 |
}
|
292 |
}
|
@@ -300,26 +423,83 @@ Version info:
|
|
300 |
return $post->ID;
|
301 |
}
|
302 |
|
303 |
-
// find & save the form data
|
304 |
-
|
305 |
-
$mydata['
|
306 |
-
$mydata['
|
307 |
-
|
308 |
-
|
309 |
-
|
310 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
311 |
// Add values of $mydata as custom fields
|
312 |
foreach ($mydata as $key => $value) { //Let's cycle through the $mydata array!
|
313 |
if( $post->post_type == 'revision' ) return; //don't store custom data twice
|
314 |
$value = implode(',', (array)$value); //if $value is an array, make it a CSV (unlikely)
|
|
|
315 |
if(get_post_meta($post->ID, $key, FALSE)) { //if the custom field already has a value
|
316 |
update_post_meta($post->ID, $key, $value);
|
317 |
} else { //if the custom field doesn't have a value
|
318 |
add_post_meta($post->ID, $key, $value);
|
319 |
}
|
|
|
320 |
if(!$value) delete_post_meta($post->ID, $key); //delete if blank
|
321 |
}
|
322 |
endif;
|
323 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
324 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
325 |
?>
|
5 |
Description: Redirect Pages or Posts to another location quickly. Adds a redirect box to the page or post edit page where you can specify the redirect Location and type which can be to another WordPress page/post or an external URL. Additional 301 Redirects can also be added for non-existant posts or pages - helpful for sites converted to WordPress.
|
6 |
Author: Don Fischer
|
7 |
Author URI: http://www.fischercreativemedia.com/
|
8 |
+
Version: 1.9
|
9 |
|
10 |
Version info:
|
11 |
+
1.9 - Add 'Open in New Window' Feature. (2/20/2010)
|
12 |
+
- Add 'rel=nofollow' option for links that will redirect. (2/20/2010)
|
13 |
+
- Add 'rewrite url/permalink' option to hide the regular link and replace it with the new re-write link. (2/20/2010)
|
14 |
+
- Hide Custom Field Meta Data to clean up the custom fields.
|
15 |
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)
|
16 |
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)
|
17 |
1.6.1 - Small fix to correct the same problem as 1.6 for Category and Archive pages (9/1/2009)
|
97 |
if (!empty($redirects)) {
|
98 |
foreach ($redirects as $request => $destination) {
|
99 |
$output .= '
|
|
|
100 |
<tr>
|
101 |
<td><input type="text" name="quickppr_redirects[request][]" value="'.$request.'" style="width:35em" /> » </td>
|
102 |
<td><input type="text" name="quickppr_redirects[destination][]" value="'.$destination.'" style="width:35em;" /></td>
|
103 |
</tr>
|
|
|
104 |
';
|
105 |
}
|
106 |
} // end if
|
158 |
//----------
|
159 |
add_action('admin_menu', 'add_edit_box_ppr');
|
160 |
add_action('save_post', 'ppr_save_postdata', 1, 2); // save the custom fields
|
161 |
+
//add_action('wp','ppr_do_redirect', 1, 2);
|
162 |
+
add_action('template_redirect','ppr_do_redirect', 1, 2);
|
163 |
+
add_action('init', 'ppr_init_metaclean', 1);
|
164 |
+
//add_action( 'template_redirect', 'ppr_redirecto');
|
165 |
+
add_filter('page_link','ppr_filter_pages',20, 2 );
|
166 |
+
add_filter('post_link','ppr_filter_pages',20, 2 );
|
167 |
+
add_filter('wp_list_pages','ppr_fix_targetsandrels', 9);
|
168 |
+
|
169 |
if (isset($redirect_plugin)) {
|
170 |
add_action('init', array($redirect_plugin,'redirect'), 1); // add the redirect action, high priority
|
171 |
add_action('admin_menu', array($redirect_plugin,'create_menu')); // create the menu
|
172 |
if (isset($_POST['submit_301'])) {$redirect_plugin->save_redirects($_POST['quickppr_redirects']);} //if submitted, process the data
|
173 |
}
|
174 |
+
|
175 |
+
|
176 |
// Variables
|
177 |
//----------
|
178 |
global $wpdb;
|
180 |
|
181 |
// Functions
|
182 |
//----------
|
183 |
+
// For WordPress < 2.8 function compatibility
|
184 |
+
if (!function_exists('esc_attr')) {
|
185 |
+
function esc_attr($attr){return attribute_escape( $attr );}
|
186 |
+
function esc_url($url){return clean_url( $url );}
|
187 |
+
}
|
188 |
+
|
189 |
+
// used to get the meta_value and ID of a post with specific meta_key.
|
190 |
+
function ppr_get_metavalfromkey($key) {
|
191 |
+
global $wpdb;
|
192 |
+
return $wpdb->get_results( $wpdb->prepare( "SELECT post_id, meta_value FROM $wpdb->postmeta WHERE meta_key = %s", $key ) );
|
193 |
+
}
|
194 |
+
|
195 |
+
//clean up the Custom Fields to make it prettier on the Edit Page
|
196 |
+
function ppr_init_metaclean() {
|
197 |
+
if ( get_option('ppr_version') != '1.9' ) {
|
198 |
+
global $wpdb;
|
199 |
+
$wpdb->query( "UPDATE $wpdb->postmeta SET meta_key = '_pprredirect_active' WHERE meta_key = 'pprredirect_active'" );
|
200 |
+
$wpdb->query( "UPDATE $wpdb->postmeta SET meta_key = '_pprredirect_newwindow' WHERE meta_key = 'pprredirect_newwindow'" );
|
201 |
+
$wpdb->query( "UPDATE $wpdb->postmeta SET meta_key = '_pprredirect_relnofollow' WHERE meta_key = 'pprredirect_relnofollow'" );
|
202 |
+
$wpdb->query( "UPDATE $wpdb->postmeta SET meta_key = '_pprredirect_type' WHERE meta_key = 'pprredirect_type'" );
|
203 |
+
$wpdb->query( "UPDATE $wpdb->postmeta SET meta_key = '_pprredirect_url' WHERE meta_key = 'pprredirect_url'" );
|
204 |
+
wp_cache_flush();
|
205 |
+
update_option( 'ppr_version', '1.9' );
|
206 |
+
}
|
207 |
+
}
|
208 |
+
|
209 |
+
function ppr_redirectto() {//alternate redirect function - old version
|
210 |
+
global $wp_query;
|
211 |
+
if (!is_single()&&!is_page()){
|
212 |
+
return;
|
213 |
+
}
|
214 |
+
$link = get_post_meta($wp_query->post->ID, '_pprredirect_url', true);
|
215 |
+
if(!$link){
|
216 |
+
return;
|
217 |
+
}
|
218 |
+
$redirect_type = get_post_meta( $wp_query->post->ID, '_pprredirect_type', true );
|
219 |
+
$redirect_type = ( $redirect_type = '302' ) ? '302' : '301';
|
220 |
+
wp_redirect( $link, $redirect_type );
|
221 |
+
exit;
|
222 |
+
}
|
223 |
+
|
224 |
+
function ppr_filter_pages ($link, $post) {
|
225 |
+
$ppr_cache = ppr_linktometa();
|
226 |
+
$id = ($post->ID) ? $post->ID : $post;
|
227 |
+
$ppr_rewrite = get_post_meta($id,'_pprredirect_rewritelink',true);
|
228 |
+
if ($ppr_cache[$id] ){
|
229 |
+
if($ppr_rewrite==='1'){ //only change the link if they want - otherwise, we will redirect the old way.
|
230 |
+
if(strpos($ppr_cache[$id],get_bloginfo('url'))>=0 || strpos($ppr_cache[$id],'www.')>=0 || strpos($ppr_cache[$id],'http://')>=0 || strpos($ppr_cache[$id],'https://')>=0){
|
231 |
+
$link = esc_url( $ppr_cache[$id] );
|
232 |
+
}else{
|
233 |
+
$link = esc_url( get_bloginfo('url').'/'. $ppr_cache[$id] );
|
234 |
+
}
|
235 |
+
}
|
236 |
+
}
|
237 |
+
return $link;
|
238 |
+
}
|
239 |
+
|
240 |
+
function ppr_linktometa () {
|
241 |
+
global $wpdb, $ppr_cache, $blog_id;
|
242 |
+
if (!isset($ppr_cache[$blog_id])){
|
243 |
+
$links_to = ppr_get_metavalfromkey('_pprredirect_url');
|
244 |
+
}else{
|
245 |
+
return $ppr_cache[$blog_id];
|
246 |
+
}
|
247 |
+
if (!$links_to) {
|
248 |
+
$ppr_cache[$blog_id] = false;
|
249 |
+
return false;
|
250 |
+
}
|
251 |
+
foreach((array) $links_to as $link){
|
252 |
+
$ppr_cache[$blog_id][$link->post_id] = $link->meta_value;
|
253 |
+
}
|
254 |
+
return $ppr_cache[$blog_id];
|
255 |
+
}
|
256 |
+
|
257 |
+
function ppr_linktotarget () {
|
258 |
+
global $wpdb, $ppr_target, $blog_id;
|
259 |
+
if (!isset( $ppr_target[$blog_id])){
|
260 |
+
$links_to = ppr_get_metavalfromkey('_pprredirect_newwindow');
|
261 |
+
}else{
|
262 |
+
return $ppr_target[$blog_id];
|
263 |
+
}
|
264 |
+
if (!$links_to) {
|
265 |
+
$ppr_target[$blog_id] = false;
|
266 |
+
return false;
|
267 |
+
}
|
268 |
+
foreach ((array) $links_to as $link){
|
269 |
+
$ppr_target[$blog_id][$link->post_id] = $link->meta_value;
|
270 |
+
}
|
271 |
+
return $ppr_target[$blog_id];
|
272 |
+
}
|
273 |
+
|
274 |
+
function ppr_linktonorel () {
|
275 |
+
global $wpdb, $ppr_norel, $blog_id;
|
276 |
+
if (!isset($ppr_norel[$blog_id])){
|
277 |
+
$links_to = ppr_get_metavalfromkey('_pprredirect_relnofollow');
|
278 |
+
}else{
|
279 |
+
return $ppr_norel[$blog_id];
|
280 |
+
}
|
281 |
+
if (!$links_to) {
|
282 |
+
$ppr_norel[$blog_id] = false;
|
283 |
+
return false;
|
284 |
+
}
|
285 |
+
foreach((array) $links_to as $link){
|
286 |
+
$ppr_norel[$blog_id][$link->post_id] = $link->meta_value;
|
287 |
+
}
|
288 |
+
//print_r($ppr_norel[$blog_id]);
|
289 |
+
return $ppr_norel[$blog_id];
|
290 |
+
}
|
291 |
+
|
292 |
function addmetatohead_theme(){
|
293 |
global $ppr_url;
|
294 |
$meta_code = '<meta http-equiv="refresh" content="0; URL='.$ppr_url.'" />';
|
300 |
global $post,$wp_query,$ppr_url,$ppr_active,$ppr_url,$ppr_type;
|
301 |
if($wp_query->is_single || $wp_query->is_page ):
|
302 |
$thisidis_current= $post->ID;
|
303 |
+
$ppr_active = get_post_meta($thisidis_current,'_pprredirect_active',true);
|
304 |
+
$ppr_url = get_post_meta($thisidis_current,'_pprredirect_url',true);
|
305 |
+
$ppr_type = get_post_meta($thisidis_current,'_pprredirect_type',true);
|
306 |
|
307 |
if( $ppr_active==1 && $ppr_url!='' ):
|
308 |
if($ppr_type===0){$ppr_type='200';}
|
353 |
// Adds a custom section to the Post and Page edit screens
|
354 |
function add_edit_box_ppr() {
|
355 |
if( function_exists( 'add_meta_box' )) {
|
356 |
+
add_meta_box( 'edit-box-ppr', __( 'Quick Page/Post Redirect', 'ppr_plugin' ), 'edit_box_ppr_1', 'page', 'normal', 'high' ); //for page
|
357 |
+
add_meta_box( 'edit-box-ppr', __( 'Quick Page/Post Redirect', 'ppr_plugin' ), 'edit_box_ppr_1', 'post', 'normal', 'high' ); //for post
|
358 |
}
|
359 |
}
|
360 |
|
367 |
$ppr_option4='';
|
368 |
$ppr_option5='';
|
369 |
// Use nonce for verification ... ONLY USE ONCE!
|
370 |
+
wp_nonce_field( 'pprredirect_noncename', 'pprredirect_noncename', false, true );
|
371 |
+
|
372 |
// The actual fields for data entry
|
373 |
+
echo '<label for="pprredirect_active" style="padding:2px 0;"><input type="checkbox" name="pprredirect_active" value="1" '. checked('1',get_post_meta($post->ID,'_pprredirect_active',true),0).' />'. __(" Make Redirect <b>Active</b>. (check to turn on)", 'ppr_plugin' ) . '</label><br />';
|
374 |
+
echo '<label for="pprredirect_newwindow" style="padding:2px 0;"><input type="checkbox" name="pprredirect_newwindow" id="pprredirect_newwindow" value="_blank" '. checked('_blank',get_post_meta($post->ID,'_pprredirect_newwindow',true),0).'>'. __(" Open redirect link in a <b>new window</b>. <span style=\"color:#800000;\"><i>NEW in version 1.9</i></span>", 'ppr_plugin' ) . '</label><br />';
|
375 |
+
echo '<label for="pprredirect_relnofollow" style="padding:2px 0;"><input type="checkbox" name="pprredirect_relnofollow" id="pprredirect_relnofollow" value="1" '. checked('1',get_post_meta($post->ID,'_pprredirect_relnofollow',true),0).'>'. __(" Add <b>rel=\"nofollow\"</b> to redirect link. <span style=\"color:#800000;\"><i>NEW in version 1.9</i></span>", 'ppr_plugin' ) . '</label><br />';
|
376 |
+
echo '<label for="pprredirect_rewritelink" style="padding:2px 0;"><input type="checkbox" name="pprredirect_rewritelink" id="pprredirect_rewritelink" value="1" '. checked('1',get_post_meta($post->ID,'_pprredirect_rewritelink',true),0).'>'. __(" <b>Show</b> the Redirect URL below in the link instead of this page URL. <b>NOTE: Use <u>FULL</u> URL below!</b> <span style=\"color:#800000;\"><i>NEW in version 1.9</i></span>", 'ppr_plugin' ) . '</label><br /><br />';
|
377 |
+
echo '<label for="pprredirect_url">' . __(" <b>Redirect URL:</b>", 'ppr_plugin' ) . '</label><br />';
|
378 |
+
if(get_post_meta($post->ID, '_pprredirect_url', true)!=''){$pprredirecturl=get_post_meta($post->ID, '_pprredirect_url', true);}else{$pprredirecturl="";}
|
379 |
echo '<input type="text" style="width:75%;margin-top:2px;margin-bottom:2px;" name="pprredirect_url" value="'.$pprredirecturl.'" /><br />(i.e., <code>http://example.com</code> or <code>/somepage/</code> or <code>p=15</code> or <code>155</code>. Use <b>FULL URL</b> <i>including</i> <code>http://</code> for all external <i>and</i> meta redirects. )<br /><br />';
|
380 |
|
381 |
+
echo '<label for="pprredirect_type">' . __(" Type of Redirect:", 'ppr_plugin' ) . '</label> ';
|
382 |
+
if(get_post_meta($post->ID, '_pprredirect_type', true)!=''){$pprredirecttype=get_post_meta($post->ID, '_pprredirect_type', true);}else{$pprredirecttype="";}
|
383 |
switch($pprredirecttype):
|
384 |
case "":
|
385 |
$ppr_option2=" selected";//default
|
398 |
break;
|
399 |
endswitch;
|
400 |
|
401 |
+
echo '<select style="margin-top:2px;margin-bottom:2px;width:40%;" name="pprredirect_type"><option value="301" '.$ppr_option1.'>301 Permanent</option><option value="302" '.$ppr_option2.'>302 Temporary</option><option value="307" '.$ppr_option3.'>307 Temporary</option><option value="meta" '.$ppr_option5.'>Meta Redirect</option></select> (Default is 302)<br /><br />';
|
402 |
+
echo '<b>NOTE:</b> For This Option to work, the page or post needs to be published for the redirect to happen <i><b>UNLESS</b></i> you publish it first, then save it as a Draft. If you want to add a redirect without adding a page/post or having it published, use the <a href="./options-general.php?page=redirects-options">Quick Redirects</a> method.';
|
403 |
}
|
404 |
+
|
405 |
// When the post is saved, saves our custom data
|
406 |
function ppr_save_postdata($post_id, $post) {
|
407 |
+
|
408 |
+
if(isset($_REQUEST['pprredirect_noncename']) && (isset($_POST['pprredirect_active']) || isset($_POST['pprredirect_url']) || isset($_POST['pprredirect_type']) || isset($_POST['pprredirect_newwindow']) || isset($_POST['pprredirect_relnofollow']))):
|
409 |
// verify authorization
|
410 |
if(isset($_POST['pprredirect_noncename'])){
|
411 |
+
//if ( !wp_verify_nonce( $_POST['pprredirect_noncename'], plugin_basename(__FILE__) )) {
|
412 |
+
if ( !wp_verify_nonce( $_REQUEST['pprredirect_noncename'], 'pprredirect_noncename' )) {
|
413 |
return $post->ID;
|
414 |
}
|
415 |
}
|
423 |
return $post->ID;
|
424 |
}
|
425 |
|
426 |
+
// find & save the form data & put it into an array
|
427 |
+
$mydata['_pprredirect_active'] = $_POST['pprredirect_active'];
|
428 |
+
$mydata['_pprredirect_newwindow'] = $_POST['pprredirect_newwindow'];
|
429 |
+
$mydata['_pprredirect_relnofollow'] = $_POST['pprredirect_relnofollow'];
|
430 |
+
$mydata['_pprredirect_type'] = $_POST['pprredirect_type'];
|
431 |
+
$mydata['_pprredirect_rewritelink'] = $_POST['pprredirect_rewritelink'];
|
432 |
+
$mydata['_pprredirect_url'] = stripslashes( $_POST['pprredirect_url']);
|
433 |
|
434 |
+
if ( 0 === strpos($mydata['_pprredirect_url'], 'www.'))
|
435 |
+
$mydata['_pprredirect_url'] = 'http://' . $mydata['_pprredirect_url'] ; // Starts with www., so add http://
|
436 |
+
|
437 |
+
if($mydata['_pprredirect_url'] === ''){
|
438 |
+
$mydata['_pprredirect_type'] = NULL; //clear Type if no URL is set.
|
439 |
+
$mydata['_pprredirect_active'] = NULL; //turn it off if no URL is set
|
440 |
+
}
|
441 |
// Add values of $mydata as custom fields
|
442 |
foreach ($mydata as $key => $value) { //Let's cycle through the $mydata array!
|
443 |
if( $post->post_type == 'revision' ) return; //don't store custom data twice
|
444 |
$value = implode(',', (array)$value); //if $value is an array, make it a CSV (unlikely)
|
445 |
+
|
446 |
if(get_post_meta($post->ID, $key, FALSE)) { //if the custom field already has a value
|
447 |
update_post_meta($post->ID, $key, $value);
|
448 |
} else { //if the custom field doesn't have a value
|
449 |
add_post_meta($post->ID, $key, $value);
|
450 |
}
|
451 |
+
|
452 |
if(!$value) delete_post_meta($post->ID, $key); //delete if blank
|
453 |
}
|
454 |
endif;
|
455 |
}
|
456 |
+
|
457 |
+
function ppr_fix_targetsandrels($pages) {
|
458 |
+
global $post;
|
459 |
+
$ppr_cache = ppr_linktometa();
|
460 |
+
$ppr_target = ppr_linktotarget();
|
461 |
+
$ppr_norel = ppr_linktonorel();
|
462 |
+
|
463 |
+
if (!$ppr_cache && !$ppr_target){
|
464 |
+
return $pages;
|
465 |
+
}
|
466 |
+
|
467 |
+
$this_url = 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
|
468 |
+
$targets = array();
|
469 |
+
$norels = array();
|
470 |
+
|
471 |
+
foreach ((array) $ppr_cache as $id => $page ) {
|
472 |
+
if (isset( $ppr_target[$id])){
|
473 |
+
$targets[$page] = $ppr_target[$id];
|
474 |
+
}
|
475 |
+
if (isset( $ppr_norel[$id])){
|
476 |
+
$norels[$page] = $id;
|
477 |
+
//$norels[$id] = $ppr_norel[$id];
|
478 |
+
}
|
479 |
+
}
|
480 |
|
481 |
+
if(count($norels)>=1) {
|
482 |
+
foreach($norels as $rel => $relid){
|
483 |
+
if(strpos($pages,' href="'.$rel.'" rel="nofollow" ')>0) {
|
484 |
+
$pages = $pages; //do nothing 'cause it is already a rel=nofollow.
|
485 |
+
}else{
|
486 |
+
$pages = str_replace(' href="'.$rel.'"',' href="'.$rel.'" rel="nofollow" ', $pages); //add no follow.
|
487 |
+
}
|
488 |
+
}
|
489 |
+
}
|
490 |
+
|
491 |
+
if(count($targets)>=1) {
|
492 |
+
foreach($targets as $p => $t){
|
493 |
+
$p = esc_url($p);
|
494 |
+
$t = esc_attr($t);
|
495 |
+
if(strpos($pages,' href="'.$p.'" target="'.$t.'" ')>0){
|
496 |
+
$pages = $pages; //already has a target
|
497 |
+
}else{
|
498 |
+
$pages = str_replace(' href="'.$p.'" ',' href="'.$p.'" target="'.$t.'" ', $pages);
|
499 |
+
}
|
500 |
+
}
|
501 |
+
}
|
502 |
+
|
503 |
+
return $pages;
|
504 |
+
}
|
505 |
?>
|
readme.txt
CHANGED
@@ -1,17 +1,18 @@
|
|
1 |
=== Quick Page/Post Redirect ===
|
2 |
Contributors: Don Fischer
|
3 |
Donate link: http://fischercreativemedia.com/
|
4 |
-
Tags: redirect, 301, 302, meta, post, plugin, page, forward, re-direct, wpmu, WordPress MU
|
5 |
Requires at least: 2.5
|
6 |
-
Tested up to: 2.9.
|
7 |
-
Stable tag: 1.
|
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.
|
14 |
|
|
|
15 |
*NEW* - Version 1.8 adds a new feature to allow you to add redirects without needing to create a Page or Post to do so. This is very useful for sites that were converted to WordPress and have old links that create 404 errors (see FAQs for more information).
|
16 |
|
17 |
The redirect Location can be to another WordPress page/post or any other website with an external URL. It allows the use of a full URL path, the post or page ID, permalink or page-name.
|
@@ -22,11 +23,13 @@ This plugin is also not compatible with WordPress versions less than 2.5.
|
|
22 |
|
23 |
Tested in MU 2.8.4a (9/8/2009)
|
24 |
|
25 |
-
TROUBLESHOOTING:
|
26 |
-
If
|
27 |
-
|
|
|
|
|
|
|
28 |
|
29 |
-
If you are using the new Quick 301 Redirects method to do your redirects, be sure that your Request URL starts with a / and is releative to the root (i.e., http://mysite.com/test/ would have /test/ in the request field).
|
30 |
== Installation ==
|
31 |
|
32 |
= If you downloaded this plugin: =
|
@@ -48,6 +51,15 @@ If you had a link on a site that went to http://yoursite.com/aboutme.html you ca
|
|
48 |
|
49 |
The new fuctionality is located in the Admin under Settings/Quick Redirects. The olde URL goes in the Request field and the to new URL goes in the Destination field. Simple and Quick!
|
50 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
51 |
= I have Business Cards/Postcards/Ads that say my website is http://something.com/my-name/ or http://something.com/my-product/, can I set that up with this? =
|
52 |
YES! Just set up a redirect (see above) and set the Request field to /my-name/ or /my-product/ and the Destination field to the place you want it to go. The destination doesn't even need to be on the same site - it can go anywhere you want it to go!
|
53 |
|
@@ -82,11 +94,16 @@ Yes, you can, but you do not always need to. If you are redirecting to an extern
|
|
82 |
|
83 |
== Screenshots ==
|
84 |
|
85 |
-
1. Sample admin Post/Page edit box screenshot.
|
86 |
-
2.
|
87 |
3. Menu for the Quick 301 Redirects page - located in the settings menu.
|
88 |
|
89 |
== Changelog ==
|
|
|
|
|
|
|
|
|
|
|
90 |
= 1.8 =
|
91 |
* Added a new Quick 301 Redirects 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)
|
92 |
= 1.7 =
|
1 |
=== Quick Page/Post Redirect ===
|
2 |
Contributors: Don Fischer
|
3 |
Donate link: http://fischercreativemedia.com/
|
4 |
+
Tags: redirect, 301, 302, meta, post, plugin, page, forward, re-direct, nofollow, wpmu, menu links, WordPress MU
|
5 |
Requires at least: 2.5
|
6 |
+
Tested up to: 2.9.2
|
7 |
+
Stable tag: 1.9
|
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 blow for additional features added in each new version.
|
14 |
|
15 |
+
*NEW* - Version 1.9 adds 3 new features: 1. you can now open a redirect link in a new window, 2. You can add a *rel="nofollow"* attribute to the link of a redirect, and 3. You can completely re-write the URL for the redirct so it takes the place of the default page URL (rewrite the href link).
|
16 |
*NEW* - Version 1.8 adds a new feature to allow you to add redirects without needing to create a Page or Post to do so. This is very useful for sites that were converted to WordPress and have old links that create 404 errors (see FAQs for more information).
|
17 |
|
18 |
The redirect Location can be to another WordPress page/post or any other website with an external URL. It allows the use of a full URL path, the post or page ID, permalink or page-name.
|
23 |
|
24 |
Tested in MU 2.8.4a (9/8/2009)
|
25 |
|
26 |
+
= TROUBLESHOOTING: =
|
27 |
+
* 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').
|
28 |
+
* If your browser tells you that your are in an infinite loop, check to make sure you do not have pages redirecting to another page that redirects back to the initial page. That WILL cause an infinate loop.
|
29 |
+
* If you are using the new Quick 301 Redirects method to do your redirects, be sure that your Request URL starts with a / and is releative to the root (i.e., http://mysite.com/test/ would have /test/ in the request field).
|
30 |
+
* If your page or post is not redirecting, this is most likely because something else like the theme functions file or another plugin is outputting the header BEFORE the plugin can perform the redirect. This can be tested by turning off all plugins except the Quick Page/Post Redirect Plugin and testing if the redirect works. 9 out of 10 times, a plugin or bad code is the culprit.
|
31 |
+
* We have tested the plugin in dozens of themes and alongside a whole lot more plugins. In our experience, (with exception to a few bugs) most of the time another plugin is the problem. If you do notice a problem, please let us know at plugins@fischercreativemedia.com - along with the WP version, theme you are using and plugins you have installed - and we will try to troubleshoot the problem.
|
32 |
|
|
|
33 |
== Installation ==
|
34 |
|
35 |
= If you downloaded this plugin: =
|
51 |
|
52 |
The new fuctionality is located in the Admin under Settings/Quick Redirects. The olde URL goes in the Request field and the to new URL goes in the Destination field. Simple and Quick!
|
53 |
|
54 |
+
= Can I add 'rel="nofollow" attribute to the redirect link? =
|
55 |
+
YES! New in 1.9, you can now add a ' rel="nofollow" ' attribute for the redirect link. Simply check the "add rel=nofollow" box when setting up the redirect on the page/post edit page. Note - this option is not available for the Quick Redirects method.
|
56 |
+
|
57 |
+
= Can I make the redirect open in a new window? =
|
58 |
+
YES! New in 1.9, you can now make the redirect link open in a new window. Simply check the "Open in a new window" box when setting up the redirect on the page/post edit page. Note - this option is not available for the Quick Redirects method.
|
59 |
+
|
60 |
+
= I want to just have the link for the redirecting page/post show the new redirect link in the link, not the old one, can I do that? =
|
61 |
+
YES! New in 1.9, you can now hide the original page link and have it replaced with the redirect link. Any place the theme calls either "wp_page_links", "post_links" or "page_links" functions, the plugin can replace the original link with the new one. Simply check the "Show Redirect URL" box when setting up the redirect on the page/post edit page. Note - this option is not available for the Quick Redirects method.
|
62 |
+
|
63 |
= I have Business Cards/Postcards/Ads that say my website is http://something.com/my-name/ or http://something.com/my-product/, can I set that up with this? =
|
64 |
YES! Just set up a redirect (see above) and set the Request field to /my-name/ or /my-product/ and the Destination field to the place you want it to go. The destination doesn't even need to be on the same site - it can go anywhere you want it to go!
|
65 |
|
94 |
|
95 |
== Screenshots ==
|
96 |
|
97 |
+
1. Sample admin Post/Page edit box screenshot (updated for version 1.9).
|
98 |
+
2. Quick 301 Redirects Page (Added in version 1.8).
|
99 |
3. Menu for the Quick 301 Redirects page - located in the settings menu.
|
100 |
|
101 |
== Changelog ==
|
102 |
+
= 1.9 =
|
103 |
+
* Added 'Open in New Window' Feature. (2/20/2010)
|
104 |
+
* Added 'rel="nofollow"' attribute option for links that will redirect. (2/20/2010)
|
105 |
+
* Added 'rewrite url/permalink' option to hide the regular link and replace it with the new re-write link anywhere the link is displayed on the site. (2/20/2010)
|
106 |
+
* Hid the Custom Field Meta Data that the plugin uses - this is just to clean up the custom fields box. (2/20/2010)
|
107 |
= 1.8 =
|
108 |
* Added a new Quick 301 Redirects 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)
|
109 |
= 1.7 =
|
screenshot-1.jpg
CHANGED
Binary file
|
screenshot.jpg
DELETED
Binary file
|