[ Index ]

PHP Cross Reference of WordPress

title

Body

[close]

/ -> wp-links-opml.php (source)

   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  __DIR__ . '/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' ), true ) ) {
  22          $link_cat = absint( (string) urldecode( $link_cat ) );
  23      }
  24  }
  25  
  26  echo '<?xml version="1.0"?' . ">\n";
  27  ?>
  28  <opml version="1.0">
  29      <head>
  30          <title>
  31          <?php
  32              /* translators: %s: Site title. */
  33              printf( __( 'Links for %s' ), esc_attr( get_bloginfo( 'name', 'display' ) ) );
  34          ?>
  35          </title>
  36          <dateCreated><?php echo gmdate( 'D, d M Y H:i:s' ); ?> GMT</dateCreated>
  37          <?php
  38          /**
  39           * Fires in the OPML header.
  40           *
  41           * @since 3.0.0
  42           */
  43          do_action( 'opml_head' );
  44          ?>
  45      </head>
  46      <body>
  47  <?php
  48  if ( empty( $link_cat ) ) {
  49      $cats = get_categories(
  50          array(
  51              'taxonomy'     => 'link_category',
  52              'hierarchical' => 0,
  53          )
  54      );
  55  } else {
  56      $cats = get_categories(
  57          array(
  58              'taxonomy'     => 'link_category',
  59              'hierarchical' => 0,
  60              'include'      => $link_cat,
  61          )
  62      );
  63  }
  64  
  65  foreach ( (array) $cats as $cat ) :
  66      /** This filter is documented in wp-includes/bookmark-template.php */
  67      $catname = apply_filters( 'link_category', $cat->name );
  68  
  69      ?>
  70  <outline type="category" title="<?php echo esc_attr( $catname ); ?>">
  71      <?php
  72      $bookmarks = get_bookmarks( array( 'category' => $cat->term_id ) );
  73      foreach ( (array) $bookmarks as $bookmark ) :
  74          /**
  75           * Filters the OPML outline link title text.
  76           *
  77           * @since 2.2.0
  78           *
  79           * @param string $title The OPML outline title text.
  80           */
  81          $title = apply_filters( 'link_title', $bookmark->link_name );
  82          ?>
  83  <outline text="<?php echo esc_attr( $title ); ?>" type="link" xmlUrl="<?php echo esc_url( $bookmark->link_rss ); ?>" htmlUrl="<?php echo esc_url( $bookmark->link_url ); ?>" updated="
  84                              <?php
  85                              if ( '0000-00-00 00:00:00' !== $bookmark->link_updated ) {
  86                                  echo $bookmark->link_updated;}
  87                              ?>
  88  " />
  89          <?php
  90      endforeach; // $bookmarks
  91      ?>
  92  </outline>
  93      <?php
  94  endforeach; // $cats
  95  ?>
  96  </body>
  97  </opml>


Generated: Tue Dec 3 01:00:02 2024 Cross-referenced by PHPXref 0.7.1