Sitemap.xml

на WP плагины/добавить новый в поиске пишишь sitemap , там куча всего. выбирай не хочу )
 
на WP плагины/добавить новый в поиске пишишь sitemap , там куча всего. выбирай не хочу )
подобные плагины есть в любой уважающей себя CMS, кроме того не сложно самому написать небольшой кусочек кода формирующий из базы нужную выборку
 
в данном случае сайты, которые постоянно обновляются статьями, на wp. Если я правильно понял, нужно выбрать плагин, который будет сканировать сайт и обновлять sitemap. Было бы идеально, наверное....хотя все равно скорее всего руками надо будет проверять, сколько sitemap-ов не делал, если не проверять автогенерацию, всегда есть некое кол-во дублей...

Если до 100 страниц, то конечно, лучше ручками.
Если более 100 - то уже лучше использовать один из множества плагинов. Просто все что делается человеком для себя - выходит качественно, если делает сотрудник/плагин - не всегда качественно выходит. А потом гадают на форумах, почему не индексируется пачка страниц...
 
Если до 100 страниц, то конечно, лучше ручками.
Если более 100 - то уже лучше использовать один из множества плагинов. Просто все что делается человеком для себя - выходит качественно, если делает сотрудник/плагин - не всегда качественно выходит. А потом гадают на форумах, почему не индексируется пачка страниц...
Зачем руками, вот вам код с хорошей логикой изменения priority и changefreq

$time = !empty($row['editedon'])
? $row['editedon']
: $row['createdon'];
$row['date'] = date('Y-m-d', $time);

$datediff = floor(($now - $time) / 86400);
if ($datediff <= 1) {
$row['priority'] = '1.0';
$row['update'] = 'daily';
}
elseif (($datediff > 1) && ($datediff <= 7)) {
$row['priority'] = '0.75';
$row['update'] = 'weekly';
}
elseif (($datediff > 7) && ($datediff <= 30)) {
$row['priority'] = '0.50';
$row['update'] = 'weekly';
}
else {
$row['priority'] = '0.25';
$row['update'] = 'monthly';
}
 
Зачем руками, вот вам код с хорошей логикой изменения priority и changefreq

$time = !empty($row['editedon'])
? $row['editedon']
: $row['createdon'];
$row['date'] = date('Y-m-d', $time);

$datediff = floor(($now - $time) / 86400);
if ($datediff <= 1) {
$row['priority'] = '1.0';
$row['update'] = 'daily';
}
elseif (($datediff > 1) && ($datediff <= 7)) {
$row['priority'] = '0.75';
$row['update'] = 'weekly';
}
elseif (($datediff > 7) && ($datediff <= 30)) {
$row['priority'] = '0.50';
$row['update'] = 'weekly';
}
else {
$row['priority'] = '0.25';
$row['update'] = 'monthly';
}


просьба если можно еще как выборку сделать напрямую из бд без подлючения, приведите код если не сложно за ранее благодарен! а то нужно на одном из сайтов сделать а ставить модули не хочется сторонние, за ранее благодарен!
 
просьба если можно еще как выборку сделать напрямую из бд без подлючения, приведите код если не сложно за ранее благодарен! а то нужно на одном из сайтов сделать а ставить модули не хочется сторонние, за ранее благодарен!

К сожалению, я не на столько силен в php, чтобы ответить на ваш вопрос. Делал программист по моему тз. Реализовано в modx и simpla, в обоих случаях опирается на api этих cms. Вот так сделано в симпле:

// Товары
$simpla->db->query("SELECT url, last_update FROM __products WHERE visible=1");
foreach($simpla->db->results() as $p)
{
$url = $simpla->config->root_url.'/'.esc($p->url);
$lastmod = date("Y-m-d");
print "\t<url>"."\n";
print "\t\t<loc>$url</loc>"."\n";
print date_pars($p->last_update);
print "\t</url>"."\n";
}

print '</urlset>'."\n";

function esc($s)
{
return(htmlspecialchars($s, ENT_QUOTES, 'UTF-8'));
}


function date_pars($lastmod)
{
$dt = preg_split('@([^0-9]+)@', $lastmod);


$time = mktime ($dt[3], $dt[4], $dt[5], $dt[1], $dt[2], (int)$dt[0]);


//$lastmod = substr(0, 10, $lastmod);

$now=date('U');
$datediff = floor(($now - $time) / 86400);
if ($datediff <= 1) {
$priority = '1.0';
$changefreq = 'daily';
}
elseif ($datediff <= 7) {
$priority = '0.75';
$changefreq = 'weekly';
}
elseif ($datediff <= 30) {
$priority = '0.50';
$changefreq = 'weekly';
}
else {
$priority = '0.25';
$changefreq = 'monthly';
}


$t='';
$t .= "\t\t<lastmod>".substr($lastmod,0,10)."</lastmod>"."\n";
$t .= "\t\t<changefreq>$changefreq</changefreq>"."\n";
$t .= "\t\t<priority>$priority</priority>"."\n";

return $t;
}
 
Назад
Сверху