Кэш фидов есть не только в опере, но и в других браузерах (в том же FF, например). Удерживание клавиши "shift" во время рефреша, решает проблему.
И кстати, замените это:
if ($publ>10){$b=11;}else{$b=$publ+1;}for ($m=1; $m<$b; $m++){$t=$publ-$m+1;include('publ/'.$t.'.php');
На это:
($publ > 10) ? $b = $publ - 10 : $b = 0;for ($m = $publ; $m > $b; $m--) {include("publ/$m.php");
Так, для прикола ) Это конечно в том случае, если я понял идею работы вашего скрипта, ибо написан он несколько витиевато...
Вот в таком виде, к сожалению, скорее всего не получится. Нет такого хука, чтобы перехватить вывод списка постов в админке. По крайней мере, я о нем не знаю. В общем, подсчитать ссылки в постах-то можно, а вот вывести их в стандартную таблицу админки не получится.
Как я вижу выше, это вопрос Вы уже решили.
Совершенно несложно. Только для этого нужно сначала купить сам скрипт парсинга ссылок с http://zavisaem.net/ за $30. А уж прикрутить его к WP можно будет при помощи пары строчек кода.
Код, который работает:
<?phpclass GooglePageRankChecker { // Track the instance private static $instance; // Constructor function getRank($page) { // Create the instance, if one isn't created yet if(!isset(self::$instance)) { self::$instance = new self(); } // Return the result return self::$instance->check($page); } // Convert string to a number function stringToNumber($string,$check,$magic) { $int32 = 4294967296; // 2^32 $length = strlen($string); for ($i = 0; $i < $length; $i++) { $check *= $magic; //If the float is beyond the boundaries of integer (usually +/- 2.15e+9 = 2^31), // the result of converting to integer is undefined // refer to http://www.php.net/manual/en/language.types.integer.php if($check >= $int32) { $check = ($check - $int32 * (int) ($check / $int32)); //if the check less than -2^31 $check = ($check < -($int32 / 2)) ? ($check + $int32) : $check; } $check += ord($string{$i}); } return $check; } // Create a url hash function createHash($string) { $check1 = $this->stringToNumber($string, 0x1505, 0x21); $check2 = $this->stringToNumber($string, 0, 0x1003F); $factor = 4; $halfFactor = $factor/2; $check1 >>= $halfFactor; $check1 = (($check1 >> $factor) & 0x3FFFFC0 ) | ($check1 & 0x3F); $check1 = (($check1 >> $factor) & 0x3FFC00 ) | ($check1 & 0x3FF); $check1 = (($check1 >> $factor) & 0x3C000 ) | ($check1 & 0x3FFF); $calc1 = (((($check1 & 0x3C0) << $factor) | ($check1 & 0x3C)) << $halfFactor ) | ($check2 & 0xF0F ); $calc2 = (((($check1 & 0xFFFFC000) << $factor) | ($check1 & 0x3C00)) << 0xA) | ($check2 & 0xF0F0000 ); return ($calc1 | $calc2); } // Create checksum for hash function checkHash($hashNumber) { $check = 0; $flag = 0; $hashString = sprintf('%u', $hashNumber) ; $length = strlen($hashString); for ($i = $length - 1; $i >= 0; $i --) { $r = $hashString{$i}; if(1 === ($flag % 2)) { $r += $r; $r = (int)($r / 10) + ($r % 10); } $check += $r; $flag ++; } $check %= 10; if(0 !== $check) { $check = 10 - $check; if(1 === ($flag % 2) ) { if(1 === ($check % 2)) { $check += 9; } $check >>= 1; } } return '7'.$check.$hashString; } function check($page) { // Open a socket to the toolbarqueries address, used by Google Toolbar $socket = fsockopen("toolbarqueries.google.com", 80, $errno, $errstr, 30); // If a connection can be established if($socket) { // Prep socket headers $out = "GET /tbr?client=navclient-auto&ch=".$this->checkHash($this->createHash($page)). "&features=Rank&q=info:".$page."&num=100&filter=0 HTTP/1.1\r\n"; $out .= "Host: toolbarqueries.google.com\r\n"; $out .= "User-Agent: Mozilla/4.0 (compatible; GoogleToolbar 2.0.114-big; Windows XP 5.1)\r\n"; $out .= "Connection: Close\r\n\r\n"; // Write settings to the socket fwrite($socket, $out); // When a response is received... $result = ""; while(!feof($socket)) { $data = fgets($socket, 128); $pos = strpos($data, "Rank_"); if($pos !== false){ $pagerank = substr($data, $pos + 9); $result += $pagerank; } } // Close the connection fclose($socket); // Return the rank! return $result; } }}$rank = GooglePageRankChecker::getRank("searchengines.ru");echo $rank;?>
У меня же есть подпись, а на форуме работает ЛС :)
Добавтье в .htaccess:
AddDefaultCharset OnAddDefaultCharset windows-1251
Ну так я же их и так предоставляю :)
Вот теперь суть понятна - Вам нужна была всего лишь функция, а не плагин. Тогда, wpquote_content() это как раз то, что Вам нужно. А проверки is_single() и is_page() можно сделать непосредственно в single-slug.php. IMHO.
Правильно. А как Вы вы хотели? В Вашем описании функций плагина нет никакой конкретики по данному вопросу. По сути, ТЗ как такового тоже нет.
Хм... Что значит "на костылях"? Вы называете "костылями" WordPress API, или что-то другое? Поясните свою мысль, пожалуйста.
Вообще-то плагин изначально задумывался так, чтобы вставлять цитаты во все посты и страницы, включая их вывод на главной, а так же, в архивах и в RSS фиде. Вам нужно было как-то иначе? Почему не уточнили этот момент? Я ж не ясновидящий и чужие мысли читать не умею.
Ну как допилите - выкладывайте в этот топик, посмотрим. Лично мне реально интересно увидеть, как именно Вы себе представляете работу данного плагина, и как реализуете его "не на костылях" :)
Это как, интересно? Поделитесь секретом? :)
Почему?
Готово, забирайте: WP Quote :)
AutoBlogger добавил 25.10.2011 в 21:51
Зaчем изобретать велосипед, если есть TPC! Memory Usage for WordPress?
На здоровье :)