dimaseo Dimaseo

Исходящая ссылка в названии поста.

🔎 Wordpress
11 ноя 2009

Многим приходилось сталкиваться с необходимостью вставки внешней ссылки в 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 ссылку на любой ресурс.