>source

사용자 지정 분류를 쉼표로 구분하여 출력하는 단축 코드를 만들려고하는데 마지막 쉼표가 쉼표 대신 "en"이되기를 원합니다. 그래서 이렇게 :

분류, 분류, 분류 및 분류

지금까지 나는 이것을 가지고있다.

// Assortiment shortcode
function verlichting_type( ){
    $terms = get_the_terms( $post->ID, 'verlichting_type' );
                foreach($terms as $term) {
                    $entry_terms .= $term->name . ', ';
                }
                $entry_terms = rtrim( $entry_terms, ', ' );
            return '<span class="verlichting__type"> ' . $entry_terms . ' </span>';
}
add_shortcode( 'verlichting_type', 'verlichting_type' );


  • 답변 # 1

    나는 예가 없기 때문에 $terms 또는 $entry_terms 변수 몇 가지 더미 데이터를 만들어야했지만 내 예제를 추출하여 코드에 배치 할 수 있어야한다고 생각합니다.

    삼항 연산자 (https://www.php.net/manual/en/language.operators.comparison.php)를 사용하여 마지막 쉼표가 ','또는 'en'인지 여부를 결정했습니다.

    <?php
    function verlichting_type() {
        $entry_terms = "";
        $terms = [
            (object)['name' => 'taxonomy'],
            (object)['name' => 'taxonomy'],
            (object)['name' => 'taxonomy'],
            (object)['name' => 'taxonomy']
        ];
        
        echo '<span class="verlichting__type">';
        
        foreach ( $terms as $index => $term) {
            $enIndex = sizeof($terms) - 2;
            $end = (isset($terms[$enIndex]) && $index == $enIndex ? ' en ' : ', ');
            
            $entry_terms .= $term->name . $end;
        }
        
        $entry_terms = rtrim( $entry_terms, ', ' );
        
        return $entry_terms . '</span>';
    }
    
    

    결과는 다음과 같습니다.

    <span class="verlichting__type">taxonomy, taxonomy, taxonomy en taxonomy</span>
    
    

    이것은 모든 배열 길이에서 작동합니다. 만약 $terms 2 개의 요소 만 있습니다.

    <span class="verlichting__type">taxonomy en taxonomy</span>
    
    

    또는 요소 1 개 :

    <span class="verlichting__type">taxonomy</span>
    
    

  • 답변 # 2

    WordPress에는 이미 입력을 현지화하는 사용자 정의 printf 기능이 있습니다.

    따라서 사이트 언어가 Francais이면

    wp_sprintf_l( '%l', ['Hello', 'world', 'never', 'give', 'up'] )

    위의 코드는

    Hello, world, never, give, et up

    Espanol의 경우 :

    Hello, world, never, give y up

    언어에 따라 언급했듯이 마지막 쉼표가 추가/제거됩니다.

관련 자료

  • 이전 reactjs - 데이터베이스의 문자열에 따라 반응 아이콘을 렌더링하는 방법은 무엇입니까?
  • 다음 python - weblogic 서버 상태 제어 스크립트