wp/wp-links-opml.php
changeset 0 d970ebf37754
child 7 cf61fcea0001
equal deleted inserted replaced
-1:000000000000 0:d970ebf37754
       
     1 <?php
       
     2 /**
       
     3  * Outputs the OPML XML format for getting the links defined in the link
       
     4  * administration. This can be used to export links from one blog over to
       
     5  * another. Links aren't exported by the WordPress export, so this file handles
       
     6  * that.
       
     7  *
       
     8  * This file is not added by default to WordPress theme pages when outputting
       
     9  * feed links. It will have to be added manually for browsers and users to pick
       
    10  * up that this file exists.
       
    11  *
       
    12  * @package WordPress
       
    13  */
       
    14 
       
    15 require_once( dirname( __FILE__ ) . '/wp-load.php' );
       
    16 
       
    17 header('Content-Type: text/xml; charset=' . get_option('blog_charset'), true);
       
    18 $link_cat = '';
       
    19 if ( !empty($_GET['link_cat']) ) {
       
    20 	$link_cat = $_GET['link_cat'];
       
    21 	if ( !in_array($link_cat, array('all', '0')) )
       
    22 		$link_cat = absint( (string)urldecode($link_cat) );
       
    23 }
       
    24 
       
    25 echo '<?xml version="1.0"?'.">\n";
       
    26 ?>
       
    27 <opml version="1.0">
       
    28 	<head>
       
    29 		<title><?php printf( __('Links for %s'), esc_attr(get_bloginfo('name', 'display')) ); ?></title>
       
    30 		<dateCreated><?php echo gmdate("D, d M Y H:i:s"); ?> GMT</dateCreated>
       
    31 		<?php
       
    32 		/**
       
    33 		 * Fires in the OPML header.
       
    34 		 *
       
    35 		 * @since 3.0.0
       
    36 		 */
       
    37 		do_action( 'opml_head' );
       
    38 		?>
       
    39 	</head>
       
    40 	<body>
       
    41 <?php
       
    42 if ( empty($link_cat) )
       
    43 	$cats = get_categories(array('taxonomy' => 'link_category', 'hierarchical' => 0));
       
    44 else
       
    45 	$cats = get_categories(array('taxonomy' => 'link_category', 'hierarchical' => 0, 'include' => $link_cat));
       
    46 
       
    47 foreach ( (array)$cats as $cat ) :
       
    48 	/**
       
    49 	 * Filter the OPML outline link category name.
       
    50 	 *
       
    51 	 * @since 2.2.0
       
    52 	 *
       
    53 	 * @param string $catname The OPML outline category name.
       
    54 	 */
       
    55 	$catname = apply_filters( 'link_category', $cat->name );
       
    56 
       
    57 ?>
       
    58 <outline type="category" title="<?php echo esc_attr($catname); ?>">
       
    59 <?php
       
    60 	$bookmarks = get_bookmarks(array("category" => $cat->term_id));
       
    61 	foreach ( (array)$bookmarks as $bookmark ) :
       
    62 		/**
       
    63 		 * Filter the OPML outline link title text.
       
    64 		 *
       
    65 		 * @since 2.2.0
       
    66 		 *
       
    67 		 * @param string $title The OPML outline title text.
       
    68 		 */
       
    69 		$title = apply_filters( 'link_title', $bookmark->link_name );
       
    70 ?>
       
    71 	<outline text="<?php echo esc_attr($title); ?>" type="link" xmlUrl="<?php echo esc_attr($bookmark->link_rss); ?>" htmlUrl="<?php echo esc_attr($bookmark->link_url); ?>" updated="<?php if ('0000-00-00 00:00:00' != $bookmark->link_updated) echo $bookmark->link_updated; ?>" />
       
    72 <?php
       
    73 	endforeach; // $bookmarks
       
    74 ?>
       
    75 </outline>
       
    76 <?php
       
    77 endforeach; // $cats
       
    78 ?>
       
    79 </body>
       
    80 </opml>