WordPress PHP Cross Reference Blogging Systems

Source: /wp-links-opml.php - 80 lines - 2382 bytes - Text - Print

Description: Outputs the OPML XML format for getting the links defined in the link administration. This can be used to export links from one blog over to another. Links aren't exported by the WordPress export, so this file handles that. This file is not added by default to WordPress theme pages when outputting feed links. It will have to be added manually for browsers and users to pick up that this file exists.

   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       * Filters 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           * Filters 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>

title

Description

title

Description

title

Description

title

title

Body