Пользователь пока ничего не рассказал о себе

Наибольший вклад в теги

Все теги (3)

Лучшие ответы пользователя

Все ответы (4)
  • Как в хлебных крошках выводить значения произвольных полей во всех уровнях вложенности?

    kaliyan
    @kaliyan
    php-developer, wordpress-developer
    _add_title обрабатывает только последний элемент крошек. За иерархию отвечает функция _page_crumbs.

    Привожу код, адаптированный под ваши требования.

    function _page_crumbs( $post ){
    		$parent = $post->post_parent;
    
    		$crumbs = array();
    		while( $parent ){
    			$page = get_post( $parent );
    
    			$my_title = get_field('my_title_field', $page->ID);
    			$post_title = esc_html($page->post_title);
    			$title = ($post_title != $my_title  && !empty($my_title)) ? $my_title  :  $post_title;
    
    			$crumbs[] = sprintf( $this->arg->linkpatt, get_permalink($page), esc_html($title) );
    			$parent = $page->post_parent;
    		}
    
    		return implode( $this->arg->sep, array_reverse($crumbs) );
    	}


    function _add_title( $add_to, $obj, $term_title = '' ){
    		$arg = & $this->arg; // упростим...
    		$title = $term_title ? $term_title : esc_html($obj->post_title); 
    		$show_title = $term_title ? $arg->show_term_title : $arg->show_post_title;
    		
    		$my_title_field = get_field('my_title_field');
    		$title = ($title != $my_title_field && !empty($my_title_field)) ? $my_title_field : $title;
    
    		// пагинация
    		if( $arg->pg_end ){
    			$link = $term_title ? get_term_link($obj) : get_permalink($obj);
    			$add_to .= ($add_to ? $arg->sep : '') . sprintf( $arg->linkpatt, $link, $title ) . $arg->pg_end;
    		}
    		// дополняем - ставим sep
    		elseif( $add_to ){
    			if( $show_title )
    				$add_to .= $arg->sep . sprintf( $arg->title_patt, $title );
    			elseif( $arg->last_sep )
    				$add_to .= $arg->sep;
    		}
    		// sep будет потом...
    		elseif( $show_title )
    			$add_to = sprintf( $arg->title_patt, $title );
    
    		return $add_to;
    	}


    Сорри, могут быть ошибки, нет времени проверить.
    Ответ написан
    9 комментариев
  • Checkbox как gridview фильтр?

    kaliyan
    @kaliyan
    php-developer, wordpress-developer
    У меня такая ситуация (yii2 + GridView + Pjax):
    5dc3d8fadb423473696690.png
    Изначально было как у вас. Применил ваше решение - заработало.

    Появилась другая проблема: если перейти на другую страницу пагинации (например, &page=12), а после этого отфильтровать любым фильтром, то _GET параметр оставался, а после фильтрации переходило сразу на последнюю страницу. Получалось &page12, а пагинатор показывал последнюю страницу после фильтрации.

    Обе проблемы решились путем добавления в GridView
    'filterUrl' => Url::to(['/orders']),

    При этом, нужно указывать 'uncheck' => null, если пользуетесь Html::activeCheckbox, так как задваиваются _GET параметры в адресной строке при чекнутом чекбоксе.
    Ответ написан
    Комментировать