Проблема с синтаксисом PHP - PullRequest
1 голос
/ 24 мая 2011

Я пытаюсь собрать ссылку, используя 2 переменные, но вывод - это ссылка и заголовок, но ссылка html / clickable не появляется.

Я получаю что-то по ссылке:

http://www.mydomain.com/post1/post_title_here

Вот код:

echo '<a href="'.the_permalink().'">'.the_title().'</a>';

Может кто-нибудь помочь, пожалуйста?

Спасибо

UPDATE:

Вот весь блок кода:

<div id="MyBlock1">
        <?php
            $query = new WP_Query('posts_per_page=5');

             while( $query ->have_posts() ) : $query ->the_post();
                 echo '<li>';
                 echo '<a href="'.the_permalink().'">'.the_title().'</a>';
                 echo '</li>';
             endwhile;

            wp_reset_postdata();

        ?>
    </div>

Ответы [ 5 ]

5 голосов
/ 24 мая 2011

Это потому, что функции wordpress the_permalink() и the_title() отображают соответствующие результаты, которые уже не нужно отображать.Если вам нужны функции, которые возвращают значения, вы должны использовать get_permalink() и get_the_title().

Так что либо:

<div id="MyBlock1">
    <?php
        $query = new WP_Query('posts_per_page=5');
        while( $query ->have_posts() ) : $query ->the_post();
            echo '<li>';
            echo '<a href="'.get_permalink().'">'.get_the_title().'</a>';
            echo '</li>';
        endwhile;
        wp_reset_postdata();
   ?>
</div>

или

<div id="MyBlock1">
    <?php
        $query = new WP_Query('posts_per_page=5');
        while( $query ->have_posts() ) : $query ->the_post();
            echo '<li><a href="';
            the_permalink();
            echo '">';
            the_title();
            echo '</a></li>';
        endwhile;
        wp_reset_postdata();
   ?>
</div>

Оба будут работать.

2 голосов
/ 24 мая 2011

Вы можете использовать соответствующие версии get_ *:

echo '<a href="' . get_permalink() . '">' . get_the_title() . '</a>';

Подробнее см. кодекс

2 голосов
/ 24 мая 2011

Вот контрольный список для отладки:

1.) the_title() возвращает пустую строку? (Вы можете проверить, посмотрев на источник HTML)

2.) Вы повторяете это внутри тега body?

3.) Это отражается в скрытом html-элементе?

2 голосов
/ 24 мая 2011
echo '<a href="'.the_permalink().'">'.the_title().'</a>';

В такой ситуации вы захотите использовать get_permalink вместо the_permalink и get_the_title вместо the_title.

echo '<a href="'.get_permalink().'">'.get_the_title().'</a>';

Функции WordPress the_* выполняют прямой вызов echo, тогда как функции get_* возвращают значение, которое вы можете использовать для дальнейшей обработки, например, конкатенацию, которую вы делаете.

(также обратите внимание на несовместимые соглашения об именах - это может быть проблемой)

0 голосов
/ 24 мая 2011

Вы должны быть абсолютно уверены, что .the_title(). определенно задает значение.Если это не так, то не будет отображаться HTML, так как нет текста для тега привязки.Просто мысль (я делал это много раз, попробуйте print_f(); с the_title (). Надеюсь, это помогло.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...