Рубрика «Шпаргалки»

Приёмы, помогающие в работе.

Битрикс: получить айди всех родительских разделов

11 января 2022. Рубрики: Шпаргалки; автор — Княгиня.

Пополнение рубрики «Шпаргалки».
Иногда бывает необходимо получить айди предков текущего раздела инфоблока. Это можно сделать так:

<?
  //получаем все вышележащие разделы 
  //для раздела с айди $IBLOCK_SECTION_ID инфоблока $IBLOCK_ID
  $navChain = CIBlockSection::GetNavChain($IBLOCK_ID, $IBLOCK_SECTION_ID);
  //собираем айди всех этих разделов
  $allsectons = array();
  while($arNav=$navChain->GetNext()){
    $allsectons[] = $arNav[ID];
  }
?>

Теперь из массива $allsectons можно получить айди всех разделов сверху вниз по индексу.

Ваш отзыв »

Как добавить ссылку в хлебных крошках плагина Yoast SEO

18 мая 2021. Рубрики: Шпаргалки; автор — Княгиня.

Рецепт работает, если вам не хватает, к примеру, ссылки на корень магазина. Используется фильтр wpseo_breadcrumb_links. Код добавляется в файл functions.php.

add_filter( 'wpseo_breadcrumb_links', 'wpseo_breadcrumb_add_woo_shop_link' );
function wpseo_breadcrumb_add_woo_shop_link( $links ) {
  global $post;
    if(is_woocommerce() && !is_shop()){
      $breadcrumb[] = array(
      'url' => get_permalink( woocommerce_get_page_id( 'shop' ) ),
      'text' => 'Магазин',
    );
    array_splice($links, 1, -2, $breadcrumb);
  }
  return $links;
}

Здесь условие is_woocommerce() означает, что изменение применяется только к страницам магазина, созданного на woocommerce. Условие !is_shop() убирает ссылку на магазин на самой странице магазина.

Ваш отзыв »

WordPress: как убрать обёртки виджетов

24 марта 2020. Рубрики: Шпаргалки; автор — Княгиня.

Вордпресс по умолчанию подставляет виджетам обёртки с классом. Часто эти обёртки бывают ненужными, а иногда просто мешают. Чтобы убрать обёртки у виджетов типа «Текст» и «Html-код», нужно добавить в файл function.php следующий код:

function my_register_sidebars(){
  /*здесь может быть регистрация новых виджетов*/
  register_widget('My_Text_Widget');
  register_widget('My_HTML_Widget');
}
class My_Text_Widget extends WP_Widget_Text{
  function widget($args, $instance){
    extract($args);
    $title = apply_filters('widget_title', empty($instance['title']) ? '' : $instance['title'], $instance, $this->id_base);
    $text = apply_filters('widget_text', empty($instance['text']) ? '' : $instance['text'], $instance);
    echo $before_widget;
    if (!empty($title)){
      echo $before_title . $title . $after_title;
    }
    echo !empty($instance['filter']) ? wpautop($text) : $text;
    echo $after_widget;
  }
}
class My_HTML_Widget extends WP_Widget_Custom_HTML{
  function widget($args, $instance){
    extract($args);
    $title = apply_filters('widget_title', empty($instance['title']) ? '' : $instance['title'], $instance, $this->id_base);
    $text = apply_filters('widget_text', empty($instance['content']) ? '' : $instance['content'], $instance);
    echo $before_widget;
    if (!empty($title)){
      echo $before_title . $title . $after_title;
    }
    echo !empty($instance['filter']) ? wpautop($text) : $text;
    echo $after_widget;
  }
}

3 комментария »