For & Foreach 루프를 사용하여 WordPress에서 여러 위젯을 만드는 방법
게시 됨: 2020-01-25너무 많은 코드를 작성하지 않고 WordPress에서 여러 위젯을 만드는 동적 방법을 찾고 있습니까? 또는 사이드바를 만들거나 대시보드에서 여러 위젯을 만들 수 있는 WordPress 테마를 본 적이 있습니까?
이전 튜토리얼 에서 WordPress에 사이드바를 추가하는 방법을 자세히 설명했습니다. 오늘 이 빠른 자습서에서는 WordPress에서 즉석에서 여러 위젯을 만드는 빠른 솔루션을 공유하겠습니다. 이렇게 하면 시간을 절약할 수 있을 뿐만 아니라 특히 바쁜 전문 WordPress 개발자인 경우 여러 프로젝트에서 이 트릭을 재사용할 수 있습니다.
여러 WordPress 사이드바를 만드는 루프
이상적으로는 일종의 루프 를 사용하여 여러 WordPress 사이드바를 생성하는 기능을 사용하는 것이 좋습니다. 첫 번째 테마 또는 플러그인에 대해 이 코드를 생성할 때 더 많은 테마 및 플러그인 개발에 재사용할 것입니다.
이 기능은 테마 또는 WordPress 플러그인에서 사용되는 동적 사이드바 생성기를 구축하는 기반이 될 수도 있습니다. 이 코드가 어떻게 작동하는지 완전히 이해하려면 해당 게시물에서 자세히 설명한 것처럼 WordPress 사이드바를 만드는 과정에 정통해야 합니다.
WordPress 위젯 만들기
WordPress 위젯은 사용자가 웹사이트의 다른 섹션에 새 콘텐츠를 표시하도록 돕는 데 중요한 역할을 합니다. 이 게시물 에서는 WordPress에서 위젯 영역을 만드는 방법 에 대해 설명합니다. 중요한 팁과 코드를 공유했으며 이 게시물 에서 WordPress에 사이드바를 추가하는 방법 에 대해 매우 명확하게 설명했습니다.
WordPress 테마에 위젯을 추가할 수 있는 기능이 있으면 사이트의 모든 섹션에 새 기능을 추가할 수 있기 때문에 정말 놀랍습니다.
WordPress에 사이드바 또는 위젯 영역을 추가하는 방법에 대한 빠른 검토를 위해 다음 코드를 functions.php에 추가하여 WordPress 테마에 위젯을 추가할 때 첫 번째 단계로 사이드바를 등록해야 합니다.
/** * 위젯 영역을 등록합니다. */ 함수 njengah_create_one_widget_tutorial() { //사이드바 기능 등록 - https://developer.wordpress.org/reference/functions/register_sidebar/ 레지스터_사이드바( 정렬( 'name' => __( 'Njengah 위젯 예제 ', 'textdomain' ), 'id' => '사이드바-1', 'description' => __( '사이드바에 표시하려면 여기에 위젯을 추가하세요.', 'textdomain' ), 'before_widget' => '<섹션 ID="%1$s" 클래스="위젯 %2$s">', 'after_widget' => '</섹션>', 'before_title' => '<h2 class="widget-title">', 'after_title' => '</h2>', ) ); } add_action( 'widgets_init', ' njengah_create_one_widget_tutorial');
이것은 우리가 WordPress 사이트에 하나의 위젯을 추가하는 데 사용하는 register_sidebar() 함수이며 이제 다음과 같이 dynamic_sidebar() 함수를 사용하여 위젯을 해당 페이지 템플릿에 표시할 수 있습니다.
<?php if ( is_active_sidebar( 'sidebar-1' ) ) : ?> <ul id="사이드바"> <?php dynamic_sidebar( '사이드바-1' ); ?> </ul> <?php endif; ?>
WordPress에서 여러 위젯 사이드바 만들기
사이드바를 등록하는 코드는 추가 사이드바를 만들기 위해 register_sidebar() 함수를 사용했으므로 원하는 대로 해당 코드를 여러 번 반복하면 됩니다. 이제 다음과 같이 이 코드를 반복하여 세 개의 사이드바를 만들 수 있습니다.
/** * 3개의 위젯 영역을 등록합니다. */ 함수 njengah_create_three_widget_tutorial() { // 사이드바 등록 #1 레지스터_사이드바( 정렬( '이름' => __( '엔젠가 사이드바 1 ', '텍스트도메인' ), 'id' => '사이드바-1', 'description' => __( '사이드바 1에 표시하려면 여기에 위젯을 추가하세요.', 'textdomain' ), 'before_widget' => '<섹션 ID="%1$s" 클래스="위젯 %2$s">', 'after_widget' => '</섹션>', 'before_title' => '<h2 class="widget-title">', 'after_title' => '</h2>', ) ); //사이드바 #2 등록 레지스터_사이드바( 정렬( '이름' => __( '엔젠가 사이드바 2', '텍스트도메인' ), 'id' => '사이드바-2', 'description' => __( '사이드바 2에 표시하려면 여기에 위젯을 추가하세요.', 'textdomain' ), 'before_widget' => '<섹션 ID="%1$s" 클래스="위젯 %2$s">', 'after_widget' => '</섹션>', 'before_title' => '<h2 class="widget-title">', 'after_title' => '</h2>', ) ); //사이드바 #3 등록 레지스터_사이드바( 정렬( '이름' => __( '엔젠가 사이드바 3 ', '텍스트도메인' ), 'id' => '사이드바-3', 'description' => __( '사이드바 3에 표시하려면 여기에 위젯을 추가하세요.', 'textdomain' ), 'before_widget' => '<섹션 ID="%1$s" 클래스="위젯 %2$s">', 'after_widget' => '</섹션>', 'before_title' => '<h2 class="widget-title">', 'after_title' => '</h2>', ) ); } add_action( 'widgets_init', 'njengah_create_three_widget_tutorial');
위젯을 등록하는 데 사용하는 이 코드를 반복하여 더 많은 위젯 영역을 만들 수 있으며 모든 것이 잘 작동합니다.
하지만 잠깐만! DRY(Don't Repeat Yourself)라는 기본 규칙이나 프로그래밍에 대해 들어본 적이 있습니까?
이것은 코드가 효율적이어야 하고 중복을 피하기 위해 이러한 반복을 피해야 함을 의미하는 간단한 원칙입니다. 이 코드를 더 나은 것으로 대체할 수 있습니다. 예를 들어, register_sidebar() 함수에 인수를 전달하여 이를 세 번 수행할 수 있습니다.
인수를 사용하여 WordPress에서 여러 위젯 만들기
두 번째 매개변수로 인수 배열을 전달하고 첫 번째 매개변수는 만들고자 하는 위젯 수를 전달하여 register_sidebar() 함수를 변경하여 WordPress에서 여러 위젯을 생성하려는 목표를 달성할 수 있습니다. 이 경우 위에서 공유한 코드를 다음과 같이 변경할 수 있습니다.
함수 create_multiple_sidebar_widgets() { $args = 배열( '이름' => 'Njengah 사이드바 %d', 'id' => 'njengah-사이드바', 'description' => 'Njengah 튜토리얼 사이드바 중 하나', '클래스' => '', 'before_widget' => '<li id="%1$s" class="위젯 %2$s">', 'after_widget' => '</li>', 'before_title' => '<h2 class="widgettitle">', 'after_title' => '</h2>' ); register_sidebar( 3, $args ); } add_action( 'widgets_init', 'create_multiple_sidebar_widgets');
이름 값에는 숫자 1,2 및 3이 있는 사이드바를 표시할 수 있도록 하는 자리 표시자 %d이(가) 있습니다.
이것은 WordPress에서 여러 위젯을 만드는 빠른 솔루션이지만 여전히 궁극적인 솔루션은 아닙니다. 곧 보여드릴 것이므로 계속해서 개선할 수 있습니다.
WordPress에서 배열로 여러 사이드바 만들기
위의 솔루션은 제목과 설명이 register_sidebar() 함수에서 할당한 항목으로만 제한되어 있기 때문에 그다지 효과적이지 않습니다.
이 솔루션을 더 잘 만들기 위해 이름, ID 및 설명이 있는 배열을 도입한 다음 foreach 루프를 사용하여 사이드바를 등록할 수 있습니다.
다음은 배열과 foreach 루프를 사용하여 여러 위젯을 만드는 예입니다.
함수 create_multiple_sidebar_widgets() { $njengah_sidebars = 배열( 정렬( '이름' => '위젯 영역 홈페이지', 'id' => '위젯 영역-홈페이지', '설명' => '홈페이지에 표시되는 위젯', ), 정렬( '이름' => '위젯 영역 헤더', 'id' => '위젯 영역 헤더', '설명' => '헤더에 표시된 위젯', ), 정렬( '이름' => '위젯 영역 바닥글', 'id' => '위젯 영역 바닥글', '설명' => '바닥글에 표시되는 위젯', ), ); $defaults = 배열( '이름' => '은젠가 사이드바', 'id' => 'njengah-사이드바', 'description' => '기본 사이드바는 이 테마의 블로그 페이지 왼쪽에 표시됩니다', '클래스' => '', 'before_widget' => '<li id="%1$s" class="위젯 %2$s">', 'after_widget' => '</li>', 'before_title' => '<h2 class="widgettitle">', 'after_title' => '</h2>' ); foreach( $njengah_sidebars as $sidebar ) { $args = wp_parse_args( $sidebar, $defaults ); register_sidebar( $args ); } } add_action( 'widgets_init', 'create_multiple_sidebar_widgets');
이 솔루션을 사용하면 모든 새 위젯 세부 정보(이름, ID 및 설명)를 어레이에 추가하기만 하면 되며 위젯이 즉석에서 생성되기 때문에 미래에 여러 위젯을 생성할 수 있는 기능을 제공합니다.
WordPress에서 여러 개의 유사한 바닥글 위젯 만들기
궁극적으로 이것은 WordPress에서 여러 위젯을 만드는 가장 좋은 방법이지만 두 번째 옵션은 여러 유사한 위젯을 원할 때도 유용할 수 있습니다.
예를 들어 여러 개의 바닥글 위젯을 생성하려는 경우 다음과 같이 for 루프를 사용하는 것이 더 쉬울 수 있습니다.
/** * for 루프를 사용하여 위젯 영역 등록 * * @저자 Joe Njenga */ 기능 njengah_register_sidebars_dynamically() { ( $i = 1, $n = 5; $i <= $n; $i++ ) { 레지스터_사이드바( 정렬( 'name' => esc_html__( '바닥글 영역 번호', 'textdomain' ) . $나, 'id' => '바닥글-' . $나, '설명' => sprintf( esc_html__( '바닥글 영역의 #%s 열', 'textdomain' ), $i ), 'before_widget' => '<aside id="%1$s" class="위젯 %2$s">', 'after_widget' => '</aside>', 'before_title' => '<h3 class="widget-title">', 'after_title' => '</h3>', ) ); } } } add_action( 'widgets_init', 'njengah_register_sidebars_dynamically' );
for 루프는 단순히 5로 계산하고 5개의 위젯을 생성하기 때문에 이것이 WordPress에서 여러 위젯을 만드는 데 가장 유용한 솔루션 중 하나가 될 수 있다고 생각합니다. 원하는 위젯 수로 숫자를 변경하면 여러 위젯이 생성됩니다 즉석에서 동적으로.
마무리
우리는 WordPress에서 여러 위젯을 만드는 세 가지 다른 방법을 다루었으며 이것이 WordPress 테마 및 플러그인에서 여러 동적 사이드바 또는 여러 위젯을 만드는 보다 혁신적인 방법을 만드는 데 자극을 주는 시작에 불과하기를 바랍니다. 마지막으로 모든 WordPress 개발자는 DRY 원칙을 사용하는 방법을 배우는 것이 중요합니다. DRY 원칙은 시간을 절약할 뿐만 아니라 코드 효율성을 향상시키기 때문입니다.