0

我正在使用 wordpress 的高级自定义字段,它使用语法get_field('custom_field_name');从数据库中提取自定义字段。在这种情况下,我有一系列复选框,并且我正在使用 PHP 来查看是否每个都已被选中,如果是,它将吐出一个字符串。这是我的PHP:

<?php 
    if(in_array('brand-id', get_field('type_of_work') )): echo "<a href='../../work/#brand-id'>Brand ID</a> |"; endif; echo " ";

    if(in_array('print', get_field('type_of_work') )): echo "<a href='../../work/#print'>Print</a> |"; endif; echo " ";

    if(in_array('books', get_field('type_of_work') )): echo "<a href='../../work/#books'>Books</a> |"; endif; echo " ";

    if(in_array('web', get_field('type_of_work') )): echo "<a href='../../work/#web'>Web</a> |"; endif; echo " "; 

    if(in_array('packaging', get_field('type_of_work') )): echo "<a href='../../work/#packaging'>Packaging</a> |"; endif; echo " ";

    if(in_array('exhibit', get_field('type_of_work') )): echo "<a href='../../work/#exhibit'>Exhibit</a> |"; endif; 

?>

这样做的意思是,如果选中此复选框,则为该复选框吐出一个链接。如您所见,我正在呼应“|” 在每个链接之后。问题是最后一个链接后面跟着一个“|”。我想删除最后一个“|” 以编程方式使用 PHP。也许我可以将整个内容转换为字符串然后使用substr($string, 0, -1);?有什么想法我会怎么做?

4

3 回答 3

2
$links = array();

if(in_array('brand-id', get_field('type_of_work') )) $links[] = "<a href='../../work/#brand-id'>Brand ID</a>";
....

echo implode(" | ",$links);
于 2012-05-10T14:05:28.857 回答
1

使用字符串:

$checks = "";

if(in_array('brand-id', get_field('type_of_work') )):  $checks .= "<a href='../../work/#brand-id'>Brand ID</a> | "; endif;

if(in_array('brand-id', get_field('type_of_work') )):  $checks .= "<a href='../../work/#print'>Print</a> |"; endif;

然后: $checks 上的 substr():echo substr($checks, 0, -2);

于 2012-05-10T14:03:28.967 回答
0
  1. 而不是直接回显文本,将其连接到字符串变量
  2. 用于trim($string, '|')移除尾管|手动
于 2012-05-10T14:02:21.957 回答