Page Links To - Version 1.0

Version Description

Download this release

Release Info

Developer markjaquith
Plugin Icon wp plugin Page Links To
Version 1.0
Comparing to
See all releases

Version 1.0

Files changed (1) hide show
  1. page-links-to.php +55 -0
page-links-to.php ADDED
@@ -0,0 +1,55 @@
1
+ <?php
2
+ /*
3
+ Plugin Name: Page Links To
4
+ Plugin URI: http://txfx.net/code/wordpress/page-links-to/
5
+ Description: Allows you to set a "links_to" meta key with a URI value that will be be used when listing WP pages. Good for setting up navigational links to non-WP sections of your
6
+ Version: 1.0
7
+ Author URI: http://txfx.net/
8
+ */
9
+
10
+ /*
11
+ === INSTRUCTIONS ===
12
+ 1) upload this file to /wp-content/plugins/
13
+ 2) activate this plugin in the WordPress interface
14
+ 3) create a new page with a title of your choosing, and with the parent page of your choosing. Leave the content of the page blank.
15
+ 4) add a meta key "links_to" with a full URI value (like "http://google.com/") (obviously without the quotes)
16
+
17
+ That's it! Now, when you use wp_list_page(), that page should link to the "links_to" value, instead of its page
18
+ */
19
+
20
+ function txfx_get_page_links_to_meta () {
21
+ global $wpdb, $page_links_to_cache;
22
+
23
+ if (!isset($page_links_to_cache)) {
24
+
25
+ $links_to = $wpdb->get_results(
26
+ "SELECT post_id, meta_value " .
27
+ "FROM $wpdb->postmeta, $wpdb->posts " .
28
+ "WHERE post_id = ID AND meta_key = 'links_to' AND post_status = 'static'");
29
+ } else {
30
+ return $page_links_to_cache;
31
+ }
32
+
33
+ if (!$links_to) {
34
+ $page_links_to_cache = false;
35
+ return false;
36
+ }
37
+
38
+ foreach ($links_to as $link) {
39
+ $page_links_to_cache[$link->post_id] = $link->meta_value;
40
+ }
41
+
42
+ return $page_links_to_cache;
43
+ }
44
+
45
+ function txfx_filter_links_to_pages ($link, $page_id) {
46
+ $page_links_to_cache = txfx_get_page_links_to_meta();
47
+
48
+ if ( $page_links_to_cache[$page_id] )
49
+ $link = $page_links_to_cache[$page_id];
50
+
51
+ return $link;
52
+ }
53
+
54
+ add_filter('page_link', 'txfx_filter_links_to_pages', 10, 2);
55
+ ?>