2013-09-10 5 views
0

Я определенно не эксперт по PHP, но я бы понял, что следующие фрагменты выводят один и тот же HTML. Но они этого не делают.Различные методы конкатенации возвращают разные выходные данные

echo '<a href="'; 
the_permalink(); 
echo '" title="'; 
the_title(); 
echo '"><i class="genericon-standard"></i></a>'; 

Возвращает (как это должно быть):

<a href="http://my-site.com/?p=1" title="Hallo wereld!"><i class="genericon-standard"></i></a> 

Но гораздо более короткий код

echo '<a href="' . the_permalink() . '" title="' . the_title() . '"><i class="genericon-standard"></i></a>'; 

возвратов

http://my-site.com/?p=1Hallo wereld!<a href="" title=""><i class="genericon-standard"></i></a> 

Что не то, что я хочу, О.Б. viously. Где я ошибаюсь во втором коде (короче)?

+1

Я бы предположил, что функции, такие как 'the_permalink()' и 'the_title()' __echo__ значение, а не __return__ значение –

+0

, вы можете добавить код 'the_permalink() слишком –

+0

Я думаю, 'the_permalink()' эхо выводит вместо того, чтобы возвращать значение –

ответ

2

the_permalink() echos the permalink, get_permalink() возвращает ссылку на себя.

Так второй путь должен быть, как показано ниже:

echo '<a href="' . get_permalink() . '" title="' . get_the_title() . '"><i class="genericon-standard"></i></a>'; 
0

Я предполагаю, что вы используете Wordpress, поэтому вы должны использовать тег get_permalink() и get_the_title() вместо the_permalink, потому что эта функция будет эхом результата и перерыва ваша строка.

В качестве альтернативы вы можете сохранить постоянную ссылку в переменной, а затем сцепить в строку:

$permalink = get_permalink($post->ID); 

Здесь документация: http://codex.wordpress.org/Function_Reference/the_permalink

0

В WordPress тегу get_permalink() и get_the_title() функции показывает Значения

Смежные вопросы