как сделать отображенение разных meta tegov для каждой страницы

Статус
В этой теме нельзя размещать новые ответы.

Juri

Мой дом здесь!
Заблокирован
Регистрация
5 Окт 2007
Сообщения
1.064
Реакции
200
  • Автор темы
  • Заблокирован
  • #1
В общем хотелось бы что б через админку можно было прописывать свои метатеги для каждой страницы сайта. но в ручную добавлять все страницы не удобно, как сделать скрипт который бы прошелся по сайту и собрал адреса всех его страниц и закинул в бд. поясните алгоритм если можно то с куском кода. заранее спасибо.
 
  • Заблокирован
  • #2
Если у вас есть админка, значит сайт динамический. Следовательно, скорее всего все материалы лежат в базе данных. Отсюда алгоритм:

Добавляем в таблицу, которая хранит тексты, новое поле для метатегов, возможно стоит даже сделать по полю на каждый метатег (минмум необходимых - это description и keywords).

Дальше пишете скрипт, который в цикле вытаскивает из таблицы текстов n записей, в которых метатеги пустые (...WHERE meta_descr = "" AND meta_keyw = "" LIMIT n) до тех пор, пока выборка не вернет пустой результат.

Дальше, в зависимости от того, какие тэги вы хотите заполнять, пишете свой алгоритм заполнения, заполняете в вытащенных записях соответствующие поля и обновляете соотв. записи в базе.

Если это описание, то, как минимум, туда можно поместить название статьи и краткое упоминание о сайте (это скорее уже надо к товарищам в SEO отедл обращаться). Если хотите заполнить ключевые слова, самое простое, что приходит в голову - разбить текст на слова, выкинуть служебные и короткие, по оставшимся пройтись Для просмотра ссылки Войди или Зарегистрируйся и подсчитать, сколько раз встречается каждый корень. Отсортировать по убыванию и поместить в метатэг первые десять (но не стемов, а слов!)
 
пользуемся наздоровье :ay:

PHP:
	// Мета теги
// in $title, $content

	$keywords = split(" ", ereg_replace("[`~!@#\$%^\&*()+=|{};:<>.,?\/\\]", " ", $title));
	foreach ($keywords as $key => $val) {
		if (strlen($val) < 3) {
			unset($keywords[$key]);
		}
	}
	query("INSERT INTO `" . $table_prefix . "postmeta` SET `post_id`='" . $insertId ."', `meta_key`='keywords', `meta_value`='" . addslashes(join(", ", $keywords)) . "'",$wpdb_link);

	$text = substr(strip_tags($content), 0, 250);
	$words = explode(" ", $text);
	unset($words[count($words)-1]);
	$description = trim(join(" ", $words));
	query("INSERT INTO `" . $table_prefix . "postmeta` SET `post_id`='" . $insertId ."', `meta_key`='description', `meta_value`='" . addslashes($description) . "'",$wpdb_link);
 
для сайтиков попроще (без баз данных) можно просто выдирать имя страницы на лету

$ы = substr ($_SERVER['REQUEST_URI'], 1, strlen($_SERVER['REQUEST_URI'])-5);

менять ненужные символы на нужные

$ы = str_replace ('-', ' ', $ы);

и вписывать куда надо

<meta name="description" content="Общее описание для всех страниц - <? echo $ы; ?>">
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху