Многим приходилось сталкиваться с необходимостью вставки внешней ссылки в title, то есть название поста в WordPress. Это может понадобиться при использовании заголовка записи в качестве ссылки на новость на другом сайте или блоге, а также ссылки на станицу находящуюся по иерархии выше папки установки вордпресса.
Сегодня пришлось искать решение этой задачи. Первые мысли натолкнули меня на логичность использования произвольных полей. Хорошенько прочесав буржунет я наткнулся на уже готовое решение задачи простановки ссылки в названии записи на сайте Рецептов WordPress.
Итак, открываем через редактор тем файлик functions.php и дописываем в него функцию:
function print_post_title() { global $post; $thePostID = $post->ID; $post_id = get_post($thePostID); $title = $post_id->post_title; $perm = get_permalink($post_id); $post_keys = array(); $post_val = array(); $post_keys = get_post_custom_keys($thePostID); if (!empty($post_keys)) { foreach ($post_keys as $pkey) { if ($pkey==’url1′ || $pkey==’title_url’ || $pkey==’url_title’) { $post_val = get_post_custom_values($pkey);}} if (empty($post_val)) { $link = $perm;} else { $link = $post_val[0];}} else { $link = $perm;} echo ‘<h2><a title=”‘.$title.’” rel=”bookmark” href=”‘.$link.’”>’.$title.’</a></h2>‘; }
При добавлении функции следует обратить внимание на то, что "Функции темы" начинаются с <?php и заканчиваются соответственно ?> - это означает что весть текст обрабатывается как php код. Соответственно, вставлять новую функцию нужно до ?>.
Теперь ползем в файл index.php и ищем там примерно такую запись:
<h2><a href=”<?php the_permalink() ?>” rel=”bookmark” title=”Permanent Link to <?php the_title(); ?>”><?php the_title(); ?></a></h2>
Заменяем ее на
<?php print_post_title() ?>
Вот собственно и все! Теперь, при написании поста, Вы можете разместить в произвольном поле с именем url1 ссылку на любой ресурс.