Создание ссылок из взорванного простого текста - PullRequest
0 голосов
/ 18 мая 2011

Я полностью открыт, как это сделать:

У меня есть строка:

echo implode(', ',get_field('categories'));

Что выводит это:

Branding, Web, Print

У меня есть около 20 опций, которые он может выводить в зависимости от того, какие флажки были отмечены.

В данный момент выводится просто текст. Как я могу сделать каждый тег ссылкой? Ссылка должна быть уникальной для каждого тега, поэтому:

<a href="tags/design/branding">Branding</a>, <a href="tags/design/web">Web</a>, <a href="tags/marketing/print">print</a> 

UPDATE: Это то, чем я сейчас занимаюсь, оно немного отличается от вашего, но, опять же, у него та же проблема: невозможно различить дизайн или маркетинговую ссылку, вот тестовая страница 1015 *:

                    <?php
$categories = get_field('categories');
$elements = array();
foreach($categories as $category) {
    //do something
    $elements[] = '<a href="/tags/design/' . strtolower($category) . '" title="' . $category . '">' . $category .'</a>';
}
echo implode(',', $elements);
?>

Ответы [ 2 ]

1 голос
/ 18 мая 2011

Я думаю, вы можете использовать это:

    $field_array = get_field('categories'); //get_field() return an array
    foreach ($field_array as $single){      //for each term of the array
       $categorie_slug = sanitize_title($single);   // clean the title from space, uppercase ...
       echo '<a href="tags/design/'.$categorie_slug.'">'.$single.'</a>';
    }

Если вы используете основные теги WordPress, используйте это:

$field_array = get_the_tags();  // get all tags
foreach ($field_array as $single){      //for each term of the array
   echo get_tag_link($single->term_id);
}
0 голосов
/ 19 мая 2011

При этом создаются ссылки:

<?php
$categories = get_field('categories');
$elements = array();
foreach($categories as $category) {
    //do something
    $elements[] = '<a href="' . $url . '" title="' . $title . '">' . $name .'</a>';
}
echo implode(',', $elements);
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...