创建引文和URL在帖子使用3个自定义字段与每个字段的条件…差一点就到了!

时间:2012-03-26 作者:Travis Pflanz

我正在创建一个新的棒球博客。当提交一篇文章时,我希望作者引用他们的来源作为新闻类型的文章。

我创建了一个带有三个自定义字段的自定义元框:

源标题,源的标题。字段名称-source\\u title源URL,源的URL。字段名称-source\\u url源名称,信息的人员或网站的名称。Field name-source\\u name我想显示作者提供的每一点信息,因此值得称赞。

代码的输出(所有字段都存在)如下所示:

<h3><a href="source_url">source_title</a> | source_name</h3>
输入source\\u url而不是source\\u标题时,输出应为:

<h3><a href="source_url">source_url</a> | source_name</h3>
(如果可能的话,最好将source\\u url删减到25个左右的字符,并删除http://

通过在其他地方的搜索和帮助,这就是我目前所拥有的:

<?php 
$seperator = \'\';

$name = get_post_meta($post->ID, \'source_name\', true);
$url = get_post_meta($post->ID, \'source_url\', true);
$title = get_post_meta($post->ID, \'source_title\', true);

if($title != \'\' || $name != \'\' || ($url != \'\' && $title != \'\')){
  $output = \'<h3>Source: \';
  $output .= ($url != \'\' && $title != \'\') ? \'<a href="\'.$url.\'">\': \'\';
  if($title != \'\' && $name != \'\') {
  $seperator = \' | \';
}
  $output .=  $title;
  $output .= ($url != \'\' && $title != \'\') ? \'</a>\': \'\';
  $output .= $seperator.$name;
  echo $output . \'</h3>\';
}
?>

What works:

<输入所有三个字段后,一切都很完美The problems:

<当输入url和名称但没有标题时,只显示名称

<h3><a href="source_url">source_url</a> | source_name</h3>
如果只输入url(没有标题或名称),则不会显示任何内容,则类似情况也是如此

<h3><a href="source_url">source_url</a></h3>
提前感谢您帮助这位新手。

1 个回复
最合适的回答,由SO网友:turbonerd 整理而成

我不确定我是否满足了您的所有要求,但我认为这可能会奏效。

<div class="source">
<?php

$name = get_post_meta($post->ID, \'sourcename\', true);
$url = get_post_meta($post->ID, \'sourceurl\', true);
$title = get_post_meta($post->ID, \'sourcetitle\', true);

$snippet = str_replace( "http://", "", $url );
$snippet = substr( $snippet, 0, 22 ) . "...";

if ( !empty( $title ) && !empty( $name ) && !empty( $url ) )
    $output = \'<h3 class="cite"><a href="\' . $url . \'">\' . $title . \'</a> | \' . $name . \'</h3>\';
else if ( !empty( $name ) && !empty( $url ) )
    $output = \'<h3 class="cite"><a href="\' . $url . \'">\' . $name .  \'</a></h3>\';
else if ( !empty( $title ) && !empty( $url ) )
    $output = \'<h3 class="cite"><a href="\' . $url . \'">\' . $title . \'</a></h3>\';
else if ( !empty( $title ) && !empty( $name ) )
    $output = \'<h3 class="cite">\' . $title . \' | \' . $name . \'</h3>\';
else if ( !empty( $title ) )
    $output = \'<h3 class="cite">\' . $title . \'</h3>\';
else if ( !empty( $name ) )
    $output = \'<h3 class="cite">\' . $name . \'</h3>\';
else if ( !empty( $url ) )
    $output = \'<h3 class="cite"><a href="\' . $url . \'">\' . $snippet . \'</a></h3>\';
else
    $output = \'\';

echo $output;

?>
</div>
如果没有,请告诉我!

结束

相关推荐