File "page.php"
Full Path: /home/pylifeesyu/www/wp-content/plugins/bwp-google-xml-sitemaps/src/modules/page.php
File size: 2.18 KB
MIME-type: text/x-php
Charset: utf-8
<?php
/**
* Copyright (c) 2011 Khang Minh <betterwp.net>
* @license http://www.gnu.org/licenses/gpl.html GNU GENERAL PUBLIC LICENSE
* @package BWP Google XML Sitemaps
*/
class BWP_GXS_MODULE_PAGE extends BWP_GXS_MODULE_POST
{
public function __construct()
{
// @since 1.3.0 this is left blank
}
protected function generate_data()
{
global $wpdb, $post;
// @since 1.3.1 use a different filter hook that expects an array instead
$excluded_posts = apply_filters('bwp_gxs_excluded_posts', array(), 'page');
$exclude_post_sql = sizeof($excluded_posts) > 0
? ' AND p.ID NOT IN (' . implode(',', $excluded_posts) . ') '
: '';
// @since 1.3.1 this should be used to add other things to the SQL
// instead of excluding posts
$sql_where = apply_filters('bwp_gxs_post_where', '', 'page');
$sql_where = str_replace('wposts', 'p', $sql_where);
$latest_post_query = '
SELECT *
FROM ' . $wpdb->posts . " p
WHERE p.post_status = 'publish'
AND p.post_password = ''
AND p.post_type = 'page'"
. $exclude_post_sql
. $sql_where . '
ORDER BY p.post_modified DESC';
$latest_posts = $this->get_results($latest_post_query);
if (!isset($latest_posts) || 0 == sizeof($latest_posts))
return false;
$using_permalinks = $this->using_permalinks();
$data = array();
// @since 1.4.0 try to get image ids as well
$image_ids = $this->get_image_ids_from_posts($latest_posts);
for ($i = 0; $i < sizeof($latest_posts); $i++)
{
$post = $latest_posts[$i];
$data = $this->init_data($data);
if ($using_permalinks && empty($post->post_name))
{
$data['location'] = '';
}
else
{
wp_cache_add($post->ID, $post, 'posts');
$data['location'] = get_permalink();
}
$data['lastmod'] = $this->get_lastmod($post);
$data['freq'] = $this->cal_frequency($post);
$data['priority'] = $this->cal_priority($post, $data['freq']);
// prepare an image if there's any
if (isset($image_ids[$post->ID]))
$data['image'] = $this->get_image_data($image_ids[$post->ID]);
$this->data[] = $data;
}
unset($latest_posts);
// always return true if we can get here,
// otherwise we're stuck in a SQL cycling loop
return true;
}
}