plugin updates
This commit is contained in:
264
wp/wp-content/plugins/wp-media-folder/class/includes/export.php
Normal file
264
wp/wp-content/plugins/wp-media-folder/class/includes/export.php
Normal file
@@ -0,0 +1,264 @@
|
||||
<?php
|
||||
/**
|
||||
* WordPress Export Administration API
|
||||
*
|
||||
* @package WordPress
|
||||
* @subpackage Administration
|
||||
*/
|
||||
|
||||
/**
|
||||
* Wrap given string in XML CDATA tag.
|
||||
*
|
||||
* @param string $str String to wrap in XML CDATA tag.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
function wxr_cdata($str)
|
||||
{
|
||||
if (!seems_utf8($str)) {
|
||||
$str = utf8_encode($str);
|
||||
}
|
||||
// $str = ent2ncr(esc_html($str));
|
||||
$str = '<![CDATA[' . str_replace(']]>', ']]]]><![CDATA[>', $str) . ']]>';
|
||||
|
||||
return $str;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the URL of the site
|
||||
*
|
||||
* @since 2.5.0
|
||||
*
|
||||
* @return string Site URL.
|
||||
*/
|
||||
function wxr_site_url()
|
||||
{
|
||||
// Multisite: the base URL.
|
||||
if (is_multisite()) {
|
||||
return network_home_url();
|
||||
} else {
|
||||
return get_bloginfo_rss('url');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Output a cat_name XML tag from a given category object
|
||||
*
|
||||
* @param object $category Category Object
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
function wxr_cat_name($category)
|
||||
{
|
||||
if (empty($category->name)) {
|
||||
return;
|
||||
}
|
||||
|
||||
echo '<wp:cat_name>' . wxr_cdata($category->name) . "</wp:cat_name>\n";
|
||||
}
|
||||
|
||||
/**
|
||||
* Output a category_description XML tag from a given category object
|
||||
*
|
||||
* @param object $category Category Object
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
function wxr_category_description($category)
|
||||
{
|
||||
if (empty($category->description)) {
|
||||
return;
|
||||
}
|
||||
|
||||
echo '<wp:category_description>' . wxr_cdata($category->description) . "</wp:category_description>\n";
|
||||
}
|
||||
|
||||
/**
|
||||
* Output a tag_name XML tag from a given tag object
|
||||
*
|
||||
* @param object $tag Tag Object
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
function wxr_tag_name($tag)
|
||||
{
|
||||
if (empty($tag->name)) {
|
||||
return;
|
||||
}
|
||||
|
||||
echo '<wp:tag_name>' . wxr_cdata($tag->name) . "</wp:tag_name>\n";
|
||||
}
|
||||
|
||||
/**
|
||||
* Output a tag_description XML tag from a given tag object
|
||||
*
|
||||
* @param object $tag Tag Object
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
function wxr_tag_description($tag)
|
||||
{
|
||||
if (empty($tag->description)) {
|
||||
return;
|
||||
}
|
||||
|
||||
echo '<wp:tag_description>' . wxr_cdata($tag->description) . "</wp:tag_description>\n";
|
||||
}
|
||||
|
||||
/**
|
||||
* Output a term_name XML tag from a given term object
|
||||
*
|
||||
* @param object $term Term Object
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
function wxr_term_name($term)
|
||||
{
|
||||
if (empty($term->name)) {
|
||||
return;
|
||||
}
|
||||
|
||||
echo '<wp:term_name>' . wxr_cdata($term->name) . "</wp:term_name>\n";
|
||||
}
|
||||
|
||||
/**
|
||||
* Output a term_description XML tag from a given term object
|
||||
*
|
||||
* @param object $term Term Object
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
function wxr_term_description($term)
|
||||
{
|
||||
if (empty($term->description)) {
|
||||
return;
|
||||
}
|
||||
|
||||
echo "\t\t<wp:term_description>" . wxr_cdata($term->description) . "</wp:term_description>\n";
|
||||
}
|
||||
|
||||
/**
|
||||
* Output term meta XML tags for a given term object.
|
||||
*
|
||||
* @param WP_Term $term Term object.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
function wxr_term_meta($term)
|
||||
{
|
||||
global $wpdb;
|
||||
|
||||
$termmeta = $wpdb->get_results($wpdb->prepare('SELECT * FROM ' . $wpdb->termmeta . ' WHERE term_id = %d', $term->term_id));
|
||||
|
||||
foreach ($termmeta as $meta) {
|
||||
/**
|
||||
* Filters whether to selectively skip term meta used for WXR exports.
|
||||
*
|
||||
* Returning a truthy value to the filter will skip the current meta
|
||||
* object from being exported.
|
||||
*
|
||||
* @param boolean $skip Whether to skip the current piece of term meta. Default false.
|
||||
* @param string $meta_key Current meta key.
|
||||
* @param object $meta Current meta object.
|
||||
*/
|
||||
if (!apply_filters('wxr_export_skip_termmeta', false, $meta->meta_key, $meta)) {
|
||||
printf("\t\t<wp:termmeta>\n\t\t\t<wp:meta_key>%s</wp:meta_key>\n\t\t\t<wp:meta_value>%s</wp:meta_value>\n\t\t</wp:termmeta>\n", wxr_cdata($meta->meta_key), wxr_cdata($meta->meta_value));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Output list of authors with posts
|
||||
*
|
||||
* @param array $post_ids Array of post IDs to filter the query by. Optional.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
function wxr_authors_list(array $post_ids = null)
|
||||
{
|
||||
global $wpdb;
|
||||
|
||||
if (!empty($post_ids)) {
|
||||
$post_ids = array_map('absint', $post_ids);
|
||||
$and = 'AND ID IN ( ' . implode(', ', $post_ids) . ')';
|
||||
} else {
|
||||
$and = '';
|
||||
}
|
||||
|
||||
$authors = array();
|
||||
$results = $wpdb->get_results('SELECT DISTINCT post_author FROM ' . $wpdb->posts . ' WHERE post_status != "auto-draft" ' . $and);
|
||||
foreach ((array) $results as $result) {
|
||||
$authors[] = get_userdata($result->post_author);
|
||||
}
|
||||
|
||||
$authors = array_filter($authors);
|
||||
|
||||
foreach ($authors as $author) {
|
||||
echo "\t<wp:author>";
|
||||
echo '<wp:author_id>' . intval($author->ID) . '</wp:author_id>';
|
||||
echo '<wp:author_login>' . wxr_cdata($author->user_login) . '</wp:author_login>';
|
||||
echo '<wp:author_email>' . wxr_cdata($author->user_email) . '</wp:author_email>';
|
||||
echo '<wp:author_display_name>' . wxr_cdata($author->display_name) . '</wp:author_display_name>';
|
||||
echo '<wp:author_first_name>' . wxr_cdata($author->first_name) . '</wp:author_first_name>';
|
||||
echo '<wp:author_last_name>' . wxr_cdata($author->last_name) . '</wp:author_last_name>';
|
||||
echo "</wp:author>\n";
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Output all navigation menu terms
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
function wxr_nav_menu_terms()
|
||||
{
|
||||
$nav_menus = wp_get_nav_menus();
|
||||
if (empty($nav_menus) || !is_array($nav_menus)) {
|
||||
return;
|
||||
}
|
||||
|
||||
foreach ($nav_menus as $menu) {
|
||||
echo "\t<wp:term>";
|
||||
echo '<wp:term_id>' . intval($menu->term_id) . '</wp:term_id>';
|
||||
echo '<wp:term_taxonomy>nav_menu</wp:term_taxonomy>';
|
||||
echo '<wp:term_slug>' . wxr_cdata($menu->slug) . '</wp:term_slug>';
|
||||
wxr_term_name($menu);
|
||||
echo "</wp:term>\n";
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Output list of taxonomy terms, in XML tag format, associated with a post
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
function wxr_post_taxonomy($post)
|
||||
{
|
||||
//$post = get_post();
|
||||
|
||||
$taxonomies = get_object_taxonomies($post->post_type);
|
||||
if (empty($taxonomies)) {
|
||||
return;
|
||||
}
|
||||
$terms = wp_get_object_terms($post->ID, $taxonomies);
|
||||
|
||||
foreach ((array) $terms as $term) {
|
||||
echo "\t\t<category domain=\"{$term->taxonomy}\" nicename=\"{$term->slug}\">" . wxr_cdata($term->name) . "</category>\n";
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Filter postmeta
|
||||
*
|
||||
* @param boolean $return_me Return
|
||||
* @param string $meta_key Meta key
|
||||
*
|
||||
* @return boolean
|
||||
*/
|
||||
function wxr_filter_postmeta($return_me, $meta_key)
|
||||
{
|
||||
if ('_edit_lock' === $meta_key) {
|
||||
$return_me = true;
|
||||
}
|
||||
return $return_me;
|
||||
}
|
||||
Reference in New Issue
Block a user