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