Wordpress: добавьте the_permalink к ссылке внутри функции

Я очень новичок в PHP и действительно не знаю, с чего начать, когда дело доходит до его написания.

Я нашел эту функцию для Wordpress, которую я использую:

function excerpt($limit) {
  $excerpt = explode(' ', get_the_excerpt(), $limit);
  if (count($excerpt)>=$limit) {
    array_pop($excerpt);
    $excerpt = implode(" ",$excerpt).'<a href="<?php the_permalink(); ?>">Read In Full</a>';
  } else {
    $excerpt = implode(" ",$excerpt);
  } 
  $excerpt = preg_replace('`\[[^\]]*\]`','',$excerpt);
  return $excerpt;
}

function content($limit) {
  $content = explode(' ', get_the_content(), $limit);
  if (count($content)>=$limit) {
    array_pop($content);
    $content = implode(" ",$content).'[...]';
  } else {
    $content = implode(" ",$content);
  } 
  $content = preg_replace('/\[.+\]/','', $content);
  $content = apply_filters('the_content', $content); 
  $content = str_replace(']]>', ']]&gt;', $content);
  return $content;

}

В приведенном выше коде я разместил

"<?php the_permalink(); ?>"

в хреф. Он просто отображается как строка слов вместо создания вызова ссылки на сообщения.

Кто-нибудь мне поможет?? Спасибо!


person Devon    schedule 12.10.2011    source источник
comment
Вы звоните в The Loop? codex.wordpress.org/The_Loop   -  person Vern Burton    schedule 12.10.2011
comment
Да, вот код: <?php $firmnews = new WP_Query(); $firmnews->query('showposts=2'); while ($firmnews->have_posts()) : $firmnews->the_post(); ?> <div class="firmnews_content"> <p> <span class="yellow"><?php Echo get_the_date(); ?></span> <?php echo excerpt(20); ?> </p> </div> <?php endwhile; ?> Функция создает ссылку «Читать полностью» на отрывке.   -  person Devon    schedule 12.10.2011
comment
попробуйте заменить the_permalink() на get_permalink() . the_permalink() отображает ссылки, а get_permalink() возвращает их. В вашем случае вы добавляете ссылку, поэтому предпочтительнее вторая   -  person sbrajesh    schedule 12.10.2011
comment
Спасибо за ответ, но ничего страшного ›‹ Проблема в том, что PHP даже не анализирует этот код. Он просто выводится как HTML. Итак, ссылка указывает на www.domain/‹?php get_permalink();?›.com Есть другие предложения?   -  person Devon    schedule 12.10.2011


Ответы (2)


У меня была именно эта проблема, и я обнаружил, что sbrajesh был прав — нам нужно использовать get_permalink(). Но это работает только в том случае, если вы правильно добавляете php — когда я использовал <?php ?>, он вообще не обрабатывал php (просто выдавал html).

Вот рабочая версия, которая у меня получилась: echo implode(' ', $words)."<span class='more'><a href='" . get_permalink() . "'>read more</a></span>"; }

person Ashe Abbott DiBlasi    schedule 03.03.2012

Попробуйте это так:

$excerpt = implode(" ",$excerpt).'<a href="'<?php the_permalink(); ?>'">Read In Full</a>';

Вы забыли поставить 'до и после php. Надеюсь, это поможет вам.

Позднее редактирование:

Я предполагаю, что весь ваш код написан на php. Тогда я думаю, вам стоит попробовать:

$excerpt = implode(" ",$excerpt).'<a href="'.the_permalink().'">Read In Full</a>';

Надеюсь, в этот раз получится.

person sticksu    schedule 12.10.2011
comment
Спасибо за ответ: D Но это все еще не работает. Когда я это делаю, это ломает всю функцию. - person Devon; 12.10.2011
comment
Это все еще нарушает функцию ›‹ - person Devon; 12.10.2011