~canonical-sysadmins/wordpress/4.7.2

« back to all changes in this revision

Viewing changes to wp-links-opml.php

  • Committer: Jacek Nykis
  • Date: 2015-01-05 16:17:05 UTC
  • Revision ID: jacek.nykis@canonical.com-20150105161705-w544l1h5mcg7u4w9
Initial commit

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
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>