如果$ middle字段为空,则尝试删除之前的空格。这是我的代码
function show_update_postdata( $value, $post_id, $field ) {
// Get values from POST
$first = $_POST['acf']['field_5b8536ef3839f'];
$middle = $_POST['acf']['field_5b853701383a0'];
$last = $_POST['acf']['field_5b8536e53839e'];
$creds= $_POST['acf']['field_5b853717383a1'];
// Custom post title
$title = $last . ', ' . $first . ' '. $middle .', ' . $creds;
$slug = sanitize_title( $title );
$postdata = array(
'ID' => $post_id,
'post_title' => $title,
'post_type' => 'physicians',
'post_name' => $slug
);
wp_update_post( $postdata );
return $value;
}
add_filter('acf/update_value/name=first_name', 'show_update_postdata', 10, 3);
add_filter('acf/update_value/name=middle_name_initial', 'show_update_postdata', 10, 3);
add_filter('acf/update_value/name=last_name', 'show_update_postdata', 10, 3);
add_filter('acf/update_value/name=credentials', 'show_update_postdata', 10, 3);
如果$ middle具有值,当前输出为Doe,John D.,MD,但是如果$ middle没有值,我得到的是该Doe,John,MD,但应该是Doe,John,MD >
任何帮助将不胜感激。
答案 0 :(得分:2)
但是如果$ middle没有价值,我会得到这个Doe,John,MD
仅因为$ middle为空,插入在其前面的空格不会自动消失。
因此,请检查变量是否为空,并且仅在不为空的情况下,插入空格和值:
$title = $last . ', ' . $first . ( $middle != '' ? ' '.$middle : '' ) .', ' . $creds;
答案 1 :(得分:1)
您可以使用trim()
功能...
从a开头和结尾开始的带空格(或其他字符) 字符串
if(empty($middle)) $middle = trim($middle);
答案 2 :(得分:1)
使用rtrim函数代替trim来验证每个变量和网址。
$var=rtrim($variable);
$var=ltrim($var);
否则empty()检查是最佳解决方案
if(empty($variable))