Widgets Flashcards

1
Q

class My_Widget extends WP_Widget {

	/**
	 * Sets up the widgets name etc
	 */
	public function \_\_construct() {
		$widget_ops = array( 
			'classname' => 'my_widget',
			'description' => 'My Widget is awesome',
		);
		parent::\_\_construct( 'my_widget', 'My Widget', $widget_ops );
	}

무슨 코드인가?

A

위젯을 만들기 위해서 플러그인에 코드를 추가한 거

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

class My_Widget extends WP_Widget {

	/**
	 * Sets up the widgets name etc
	 */
	public function \_\_construct() {
		$widget_ops = array( 
			'classname' => 'my_widget',
			'description' => 'My Widget is awesome',
		);
		parent::\_\_construct( 'my_widget', 'My Widget', $widget_ops );
	}

후에 어떤 걸 해야하는가?

A

register_widget() 으로 등록하고

add_action( ‘widgets_init’, ‘…’ );

로 추가해야한다

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

public function __construct() {
$widget_ops = array(
‘classname’ => ‘my_widget’,
‘description’ => ‘My Widget is awesome’,
);
parent::__construct( ‘my_widget’, ‘My Widget’, $widget_ops );
}

‘classname’ => ‘my_widget’,
‘description’ => ‘My Widget is awesome’,

들은 어디에 영향을 주는가?

A

백엔드의 appearance의 widget 서브메뉴에서

식별하는 데 사용된다

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

public function widget( $args, $instance ) {

}

용도는?

A

프론트에서 위젯을 표시하는 데 사용된다

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

테마 아래에 있는 functions.php

function gymfitness_widgets() {
register_sidebar( array(
‘name’ => ‘Sidebar’,
‘id’ => ‘sidebar’,
‘before_widget’ => ‘<div class="widget">’,
‘after_widget’ => ‘</div>’,
‘before_title’ => ‘<h3 class="text-primary">’,
‘after_title’ => ‘</h3>’
) );
}
add_action(‘widgets_init’, ‘gymfitness_widgets’);

위젯 플러그인의

echo $args[‘before_widget’];
echo $args[‘after_widget’];

어떤 관계가 있는가?

A

functions.php 에서 지정한

before_widget
after_widget

키의 value 값들이

위젯 플러그인에서 적용된다

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

widget 클래스의

widget 메서드에서

WP_Query()

사용할 수 없다?

A

X,

사용 해야한다.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

$args = array(
‘post_type’ => ‘gymfitness_classes’,
‘posts_per_page’ => $quantity,
‘orderby’ => ‘rand’
);

                $classes = new WP_Query($args);
                while($classes->have_posts()): $classes->the_post();

‘orderby’ => ‘rand’ 는 뭘 의미하는가?

A

템플릿에서 post를 랜덤으로 표시

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

프론트에 표시하는 거와 관련있는 위젯 메서드

A

.. 플러그인에서

public function widget( $args, $instance ) {

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

백엔드에 표시하는 거와 관련된 위젯 메서드

A

.. 플러그인에서

public function form( $instance ) {

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

워드프레스 테마에서 백엔드는

A

Admin panel을 의미하는 경우가 있다

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

백엔드에서 표시하고 싶은 게 있다면

A

그 플러그인에서 백엔드에서 표시하는 부분을 만지면 된다

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

public function form( $instance ) {
$title = ! empty( $instance[‘title’] ) ? $instance[‘title’] : esc_html__( ‘New title’, ‘text_domain’ );
$quantity = ! empty( $instance[‘quantity’] ) ? $instance[‘quantity’] : esc_html__( ‘1’, ‘text_domain’ );

??

A

백엔드에 표시하기위한

데이터를 가져오는 코드이다

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

public function form( $instance ) {
$title = ! empty( $instance[‘title’] ) ? $instance[‘title’] : esc_html__( ‘New title’, ‘text_domain’ );
$quantity = ! empty( $instance[‘quantity’] ) ? $instance[‘quantity’] : esc_html__( ‘1’, ‘text_domain’ );

이 코드를 입력하고

필드에 입력을 해도 quantity가 저장이 안되는 이유는?

A

플러그인의 update 메서드에서

$instance = array();

$instance[‘title’] = ( ! empty( $new_instance[‘title’] ) ) ? sanitize_text_field( $new_instance[‘title’] ) : ‘’;

$instance[‘quantity’] = ( ! empty( $new_instance[‘quantity’] ) ) ? sanitize_text_field( $new_instance[‘quantity’] ) : ‘’;

return $instance;

이렇게 처리를 해야한다

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

*_widgets.php 의

$instance는

A

데이터베이스에

저장된 값이다

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

라라벨에서 페이지에 대한 blade를 정의하듯이

A

워드프레스에서는 template hierarchy로

워드프레스가 읽을 수 있는 파일명을 지어야한다

How well did you know this?
1
Not at all
2
3
4
5
Perfectly