Июл 12
Есть у dagon sitemap generator один такой маленький баг – он при включенных ЧПУ не всегда правильно определяет номер страницы, выводит всегда только первую страницу. Почему так происходит, я точно не определил, функция get_query_var видимо некорректно срабатывает.
Вылечить можно, добавив несколько строчек в файл плуга sitemap-generator.php
После строк
$current_page = 1;
if (get_query_var("pg")) {
$current_page = get_query_var("pg");
}
Добавляем:
$url = $_SERVER['REQUEST_URI'];
preg_match("([0-9]+)", $url, $out);
if(($out[0] != $current_page) AND ($out[0] > 1)){ $current_page = $out[0]; }
Это примерно 1074 строка.
Вкратце, что делает код. Он проверяет номер страницы, который определяет сам плагин, с номером страницы в урле. Если они не совпадают, то берет номер страницы из урла. Проверялось на чпу вида /sitemap/4
UPD. Подправил немного, чтобы для нулевой страницы не переопределял номер.
Май 13
небольшой код
$username = "username";
$password = "password";
$rpcurl = "http://myblog.com/xmlrpc.php";
$image = fopen("file.jpg","r");
$file = fread($image,filesize("file.jpg"));
fclose($image);
$filetype = "image/jpeg";
$filename = "testimage.jpg";
$result = wpUploadFileXMLRPC($blogid,$rpcurl,$username,$password,$filename, $filetype, $file);
echo(print_r($result));
function wpUploadFileXMLRPC($blogid,$rpcurl,$username,$password,$filename, $filetype, $file){
$params = array('',$username,$password,array('name'=>$filename, 'type'=>$filetype,'bits'=>$file,'overwrite'=>true));
$request = xmlrpc_encode_request('wp.uploadFile',$params);
$result = makeCall($request,$rpcurl);
return($result);
}
Апр 21
<?php
global $wpdb;
$where = 'WHERE comment_approved = 1';
$comment_counts = (array) $wpdb->get_results("
SELECT COUNT( * ) AS total
FROM {$wpdb->comments}
{$where}
", object);
echo $comment_counts[0]->total;
?>
Мар 31
Можно колдовать с category base в настройках, но я нашел в интернетах более простой способ, добавив в functions.php пару строк
function seocategorydel($catlink1) {
$catlink1 = str_replace('/category', '', $catlink1);
return $catlink1;
}
add_filter('category_link', 'seocategorydel', 1, 1);
Мар 15
В вордпрессе есть встроенная навигация по страницам prev_link next_link, но она ищет вообще по всем страницам. Мне тут понадобилось сделать такую же, только в пределах одной категории.
<ul>
<?php
$category = get_the_category();
$catID = $category[0]->term_id;
$myposts = get_posts('numberposts=2&offset=2&category=$catID');
$t = 0;
foreach($myposts as $post) :
setup_postdata($post);
if($t == 0){$class = "first";}
if($t == 1){$class = "last";}
$t++;
?>
<li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
<?php endforeach; ?>
</ul>
Чем еще полезен пример – позволяет вытащить инфу с массива категории. Я его постоянно ищу.
Вторая строка дает массив $category[0], в котором есть след вещи:
[term_id]
[name]
[slug]
[term_group]
[term_taxonomy_id]
[taxonomy]
[description]
[parent]
[count]
[object_id]
[cat_ID]
[category_count]
[category_description]
[cat_name]
[category_nicename]
[category_parent]
Т.е. можно вытащить отдельно имя категории – $category[0]->name;
P.S. Надо быть проще..
<ul>
<?php
$prevPost = get_previous_post();
?>
<li><a href="<?php echo get_permalink($prevPost->ID);?>"><?php echo $prevPost->post_title;?></a></li>
<?php
$prevPost = get_next_post();
?>
<li><a href="<?php echo get_permalink($prevPost->ID);?>"><?php echo $prevPost->post_title;?></a></li>
</ul>
Фев 15
Или рожденные в муках познания. XML-RPC как-то не очень дружит с документацией, никаких особо внятных вещей по поводу формата postmeta я так и не нашел. И если как ставить какой-нибудь excerpt еще можно догадаться:
$content_struct['mt_excerpt'] = "string";
то вот до выставления даты можно долго доходить:
$date = gmdate("Ymd\TH:i:s",strtotime("+".rand(0,20)." day +
".rand(0,20)." hour +".rand(0,60)." minute"));
$content_struct['dateCreated'] = new IXR_Date($date);
В примере дата на 20 дней вперед-назад разносится.
Custom fields выставляются так:
$custom_fields = array(
array(
'key' => 'price',
'value' => 'val1'
),
);
$content_struct['custom_fields']= $custom_fields;
Янв 18
На некоторых хостингах, на свебе например, не дает постить в вп через xml-rpc.
В .htaccess
<Files xmlrpc.php>
SecFilterInheritance Off
</Files>
Дек 14
Нашел на одном из блогов такой вариант записи robots.txt
User-agent: *
Allow: /
Disallow: /wp-content/
Disallow: /trackback/
Disallow: /wp-admin/
Disallow: /archives/
Disallow: /*?
Disallow: /*.js$
Disallow: /*.inc$
Disallow: /*.css$
Disallow: */trackback/
Disallow: /c/
Disallow: /author/
Disallow: /tag/
User-agent: Mediapartners-Google
Allow: /
User-agent: Adsbot-Google
Allow: /
User-agent: Googlebot-Image
Allow: /
User-agent: Googlebot-Mobile
Allow: /
#User-agent: ia_archiver-web.archive.org
#Disallow: /
Sitemap: http://wpswitch.com/robots.txt
Сразу видно, что расчитано на чпу вида %category%.
Еще интересен вариант с отсечением js, inc и css. Хотя вроде цсс итак не индексируется.
Сен 25
Несколько полезных примеров регулярок, которые можно скопипастить по мере нужды. Также небольшая памятка по составлению и функциям.
Примеры шаблонов
| Выражение |
Совпадает |
| foo |
Слово foo |
| ^foo |
Начинается с foo |
| foo$ |
Кончается с foo |
| ^foo$ |
Точное совпадение с foo |
| [abc] |
a, b или c |
| [a-z] |
Любая строчная буква |
| [^A-Z] |
Любой символ не в верхнем регистре |
| (gif|jpg) |
Совпадает либо gif либо jpeg |
| [a-z]+ |
Одна или более строчных букв |
| [0-9.-] |
Любое число, точка или минус |
| ^[a-zA-Z0-9_]{1,}$ |
Любое слово, в котором как минимум одна буква, число или _ |
| ([wx])([yz]) |
wy, wz или xy, xz |
| [^A-Za-z0-9] |
Любой символ (не буква и не цифра) |
| ([A-Z]{3}|[0-9]{4}) |
Совпадает три буквы или четыре цифры |
read all »
Сен 23
Карты сайта обычно у всех одинаковы – это простыня со списком ссылок, которых чем больше – тем лучше. Считается, что так лучше в плане сео. И хотя для ботов уже давно делают свою карту, в xml, многие продолжают делат как раньше.Особенно часто для вп используют плагин dagon sitemap generator.
Но можно все сделать красиво. Нашел вот примерчик, как можно сделать красивую карту сайта.

Данный пример хорошо подходит для коммерческого сайта, а вот для блога переделать его проблемно. Особенно, если постов много и категорий.
Немного поколдовав, я сделал вот такую карту сайта с использованием jQuery . Под осликами наверно не будет корректно отображаться.
read all »