Ответы пользователя по тегу WordPress
  • Как получить slug не опубликованного поста?

    var_dump($posts[$post->ID]->post_name) попробуй
    Ответ написан
    Комментировать
  • Как добавить кастомный класс для ссылок в меню Wordpress?

    Ответ написан
    Комментировать
  • Надо плагин слайдера подобный стандартному вукомерскому но для вывода например определенных категорий товара?

    revolurion slider делает такую штуку, пы сы могу скинуть
    Ответ написан
    Комментировать
  • WordPress - откат изменений в шапке сайта?

    восстановить из резервной копии (если хост ) или же смотреть в исходники темы (если это готовая тема из маркета) ну и в самый последний момент прописать самому
    Ответ написан
    Комментировать
  • Как реализовано меню wordpress?

    в laravel у меня реализовано так
    @if(!isset($innerLoop))
    <ul class="nav navbar-nav">
    @else
    <ul class="dropdown-menu">
    @endif
    
    @php
    
        if (Voyager::translatable($items)) {
            $items = $items->load('translations');
        }
    
    @endphp
    
    @foreach ($items->sortBy('order') as $item)
        
        @php
        
            $originalItem = $item;
            if (Voyager::translatable($item)) {
                $item = $item->translate($options->locale);
            }
    
            $listItemClass = null;
            $linkAttributes =  null;
            $styles = null;
            $icon = null;
            $caret = null;
    
            // Background Color or Color
            if (isset($options->color) && $options->color == true) {
                $styles = 'color:'.$item->color;
            }
            if (isset($options->background) && $options->background == true) {
                $styles = 'background-color:'.$item->color;
            }
    
            // With Children Attributes
            if(!$originalItem->children->isEmpty()) {
                $linkAttributes =  'class="dropdown-toggle" data-toggle="dropdown"';
                $caret = '<span class="caret"></span>';
    
                if(url($item->link()) == url()->current()){
                    $listItemClass = 'dropdown active';
                }else{
                    $listItemClass = 'dropdown';
                }
            }
    
            // Set Icon
            if(isset($options->icon) && $options->icon == true){
                $icon = '<i class="' . $item->icon_class . '"></i>';
            }
            
        @endphp
    
        <li class="{{ $listItemClass }}">
            <a href="{{ url($item->link()) }}" target="{{ $item->target }}" style="{{ $styles }}" {!! $linkAttributes or '' !!}>
                {!! $icon !!}
                <span>{{ $item->title }}</span>
                {!! $caret !!}
            </a>
            @if(!$originalItem->children->isEmpty())
            @include('voyager::menu.bootstrap', ['items' => $originalItem->children, 'options' => $options, 'innerLoop' => true])
            @endif
        </li>
    @endforeach
    
    </ul>

    <ul class="nav navbar-nav">
    
    @php
        if (Voyager::translatable($items)) {
            $items = $items->load('translations');
        }
    
    @endphp
    
    @foreach ($items->sortBy('order') as $item)
        
        @php
            $originalItem = $item;
            if (Voyager::translatable($item)) {
                $item = $item->translate($options->locale);
            }
    
            // TODO - still a bit ugly - can move some of this stuff off to a helper in the future.
            $listItemClass = [];
            $styles = null;
            $linkAttributes = null;
    
            if(url($item->link()) == url()->current())
            {
                array_push($listItemClass,'active');
            }
    
            // With Children Attributes
            if(!$originalItem->children->isEmpty())
            {
                foreach($originalItem->children as $children)
                {
                    if(url($children->link()) == url()->current())
                    {
                        array_push($listItemClass,'active');
                    }
                }
                $linkAttributes =  'href="#' . str_slug($item->title, '-') .'-dropdown-element" data-toggle="collapse" aria-expanded="'. (in_array('active', $listItemClass) ? 'true' : 'false').'"';
                array_push($listItemClass, 'dropdown');
            }
            else
            {
                $linkAttributes =  'href="' . url($item->link()) .'"';
            }
    
            // Permission Checker
            $self_prefix = str_replace('/', '\/', $options->user->prefix);
            $slug = str_replace('/', '', preg_replace('/^\/'.$self_prefix.'/', '', $item->link()));
    
            if ($slug != '') {
                // Get dataType using slug
                $dataType = $options->user->dataTypes->first(function ($value) use ($slug) {
                    return $value->slug == $slug;
                });
    
                if ($dataType) {
                    // Check if datatype permission exist
                    $exist = $options->user->permissions->first(function ($value) use ($dataType) {
                        return $value->key == 'browse_'.$dataType->name;
                    });
                } else {
                    // Check if admin permission exists
                    $exist = $options->user->permissions->first(function ($value) use ($slug) {
                        return $value->key == 'browse_'.$slug && is_null($value->table_name);
                    });
                }
    
                if ($exist) {
                    // Check if current user has access
                    if (!in_array($exist->key, $options->user->user_permissions)) {
                        continue;
                    }
                }
            }
            
        @endphp
    
        <li class="{{ implode(" ", $listItemClass) }}">
            <a {!! $linkAttributes !!} target="{{ $item->target }}">
                <span class="icon {{ $item->icon_class }}"></span>
                <span class="title">{{ $item->title }}</span>
            </a>
            @if(!$originalItem->children->isEmpty())
            <div id="{{ str_slug($originalItem->title, '-') }}-dropdown-element" class="panel-collapse collapse {{ (in_array('active', $listItemClass) ? 'in' : '') }}">
                <div class="panel-body">
                    @include('voyager::menu.admin_menu', ['items' => $originalItem->children, 'options' => $options, 'innerLoop' => true])
                </div>
            </div>
            @endif
        </li>
    @endforeach
    
    </ul>
    Ответ написан
  • Не открывает страницы с произвольной таксономией! В чем ошибка?

    первое это нужно создать шаблон где это будет отображаться
    второе это пере сохранить произвольные ссылки в меню вордпресс (просто зайти на страницу "постоянные ссылки" и нажать кнопку сохранить )
    Ответ написан
  • Как перенести товары с Opencart на Wordpress?

    xml и вперед
    Ответ написан
    Комментировать
  • Можно ли в WP создать свой тип записей?

    да есть costum_post
    Ответ написан
    Комментировать
  • Как сделать перевод полей загружаемые через ajax используя плагин qTranslate-X в Wordpress?

    Разве не работает?
    <!--:en--><!--:--><!--:ru--><!--:--><!--:ua--><!--:-->

    из коробки
    Пользовательские поля	
    Введите "id" или "class" атрибут текстового поля с вашей схемы, который вы хотели бы перевести. Это относиться к Постам, редакторам страниц и медиа (/wp-admin/post*). Что бы найти "id" или "class", нажмите правой клавишей мышки на поле в Посту или в редакторе страниц и выбирите "Inspect Element". Найдите там атрибут поля под названием "id" или "class". Введите их тут через запятую. После сохранения конфигурации, эти поля начнут реагировать при переключении языка, и вы сможете ввести разные тексты для каждого языка. Поля ввода типа 'textarea' будут парснуты <!--:--> синтаксисом, а одностороннее поля с [:] синтаксисом. Если вас не устраивает такое поведение, укажите префикс '<' или '[' к имени поля который что бы указать какой синтакс использовать. За дополнительной информацией можно обратиться в FAQ.
    id	 
    Значение атрибута "id" обычно уникален в пределах одной страницы, иначе первое поле которое будет найдено с этим идентификатором будет использовано.
    class	 
    Все поля указанного класса будет реагировать на кнопки переключения языка. Будьте осторожны, чтобы не включить класс, который затронет поля нейтральные к языку. Если вы не можете уникально идентифицировать поле необходимое "id", либо с атрибутом "class", сообщите о проблеме в Support Forum
    Пользовательские фильтры	 
    Names of filters (which are enabled on theme or other plugins via apply_filters() function) to add translation to. For more information, read FAQ.


    и вот еще
    Ответ написан
    4 комментария
  • Как поменять div путь на странице?

    wp_nav_menu( array(
    	'theme_location'  => '',
    	'menu'            => '', 
    	'container'       => 'div', 
    	'container_class' => '', 
    	'container_id'    => '',
    	'menu_class'      => 'menu', 
    	'menu_id'         => '',
    	'echo'            => true,
    	'fallback_cb'     => 'wp_page_menu',
    	'before'          => '',
    	'after'           => '',
    	'link_before'     => '',
    	'link_after'      => '',
    	'items_wrap'      => '<ul id="%1$s" class="%2$s">%3$s</ul>',
    	'depth'           => 0,
    	'walker'          => '',
    ) );

    более детальней смотрите в документации
    Ответ написан
    Комментировать
  • Как вывести свое кастомное поле в админке под полем ввода заголовка?

    $meta_boxes[] = array(
        'id' => THEME_SLUG . '_page_settings',
        'title' => __( 'Page Settings', THEME_SLUG ),
        'pages' => array( 'page' ),
        'context' => 'normal',
        'priority' => 'high',
        'autosave' => true,
    
     <blockquote>   'fields' => array(
            // Subtitle
            array(
                'name'  => 'Subtitle:',
                'id'    => THEME_SLUG . "_subtitle",
                'type'  => 'hidden'</blockquote>
            ),

    и код полностью
    <?php
    global $wp_registered_sidebars;
    $layout = isset($this->data['page_sidebar_position']) ? $this->data['page_sidebar_position'] : 'no';
    $sidebars_list = array();
    foreach ($wp_registered_sidebars as $sidebar => $attrs) {
        $sidebars_list[$attrs['id']] = $attrs['name'];
    }
    
    $port_cats_array = array('none' => __('Default (All Categories)', THEME_SLUG));
    $port_cats = get_terms( THEME_SLUG . '_portfolio_category', 'orderby=name&order=ASC&hide_empty=1' );
    foreach ($port_cats as $key => $value) {
        $port_cats_array[$value->term_id] = $value->name;
    }
    
    // PAGE
    $meta_boxes[] = array(
        'id' => THEME_SLUG . '_page_settings',
        'title' => __( 'Page Settings', THEME_SLUG ),
        'pages' => array( 'page' ),
        'context' => 'normal',
        'priority' => 'high',
        'autosave' => true,
    
        'fields' => array(
            // Subtitle
            array(
                'name'  => 'Subtitle:',
                'id'    => THEME_SLUG . "_subtitle",
                'type'  => 'hidden'
            ),
    
            // Category for portfolio page
            array(
                'name'    =>  __( 'Portfolio Category:', THEME_SLUG ),
                'id'      =>  THEME_SLUG . "_page_portfolio_cat",
                'type'    =>  'select',
                'desc'    =>  __( 'Select category for this page. This category <b>should be</b> a parent category.', THEME_SLUG ),
                'options' =>  $port_cats_array,
                'std'     =>  'none',
            ),
    
            // // Header Background
            // array(
            //     'name' => __('Header background:', THEME_SLUG),
            //     'id'               => THEME_SLUG . "_page_header_bg",
            //     'type'             => 'image_advanced',
            //     'max_file_uploads' => 1,
            //     'desc'  => __( 'Select image from media library.', THEME_SLUG ),
            // ),
    
            // // Advanced Background Settings
            // array(
            //     'name' => __('Advanced background settings:', THEME_SLUG),
            //     'id'               => THEME_SLUG . "_page_header_advanced",
            //     'type'             => 'checkbox',
            //     'std'              => 0,
            //     'desc'  => __( 'It works <b>ONLY</b> if you choose a header background image above.', THEME_SLUG ),
            // ),
    
    // DIVIDER
    // array(
    //     'type' => 'divider',
    //     'id'   => THEME_SLUG . "_page_divider_id1", // Not used, but needed
    // ),
    //         // Header Background Color
    //         array(
    //             'name' => __('Page header background:', THEME_SLUG),
    //             'id'               => THEME_SLUG . "_page_header_bgcol",
    //             'type'             => 'color',
    //             'std'              => '#000'
    //             // 'desc'  => __( 'Select image from media library.', THEME_SLUG ),
    //         ),
    
    //         // Background opacity
    //         array(
    //             'name' => __( 'Background opacity:', THEME_SLUG ),
    //             'id'   => THEME_SLUG . "_page_header_bgcol_opacity",
    //             'type' => 'slider',
    //             'suffix' => ' %',
    //             'std' => 0.40,
    //             // jQuery UI slider options. See here http://api.jqueryui.com/slider/
    //             'js_options' => array(
    //                 'min'   => 0.01,
    //                 'max'   => 1,
    //                 'step'  => 0.01,
    //             ),
    //         ),
    
    //         // Title Color
    //         array(
    //             'name' => __('Page title color:', THEME_SLUG),
    //             'id'               => THEME_SLUG . "_page_title_col",
    //             'type'             => 'color',
    //             'std'              => '#FFF'
    //         ),
    
            // Subitle Color
            // array(
            //     'name' => __('Subtitle color:', THEME_SLUG),
            //     'id'               => THEME_SLUG . "_page_subtitle_col",
            //     'type'             => 'color',
            // ),
    
    // array(
    //     'type' => 'divider',
    //     'id'   => THEME_SLUG . "_page_divider_id2", // Not used, but needed
    // ),
    
            // Breadcrumbs
            array(
                'name'    => __( 'Breadcrumbs:', THEME_SLUG ),
                'id'   => THEME_SLUG . "_page_breadcrumbs",
                'type'    => 'select',
                'desc'  => __( 'By default page used general theme settings, defined on '.THEME_NAME.' Options page.', THEME_SLUG ),
                'options' => array(
                    '-1' => __( 'Default', THEME_SLUG ),
                    '1' => __( 'Show', THEME_SLUG ),
                    '0' => __( 'Hide', THEME_SLUG ),
                ),
                'std'  => '-1',
            )
    
        )
    );
    
    $meta_boxes[] = array(
        'id' => THEME_SLUG . '_page_layout',
        'title' => __( 'Page Layout', THEME_SLUG ),
        'pages' => array( 'page' ),
        'context' => 'side',
        'priority' => 'low',
        'autosave' => true,
    
        'fields' => array(
            // Layout
            array(
                'id'       => THEME_SLUG . '_page_layout',
                'type'     => 'image_select',
                'options'  => array(
                    'right' => THEME_URI . '/core/options/redux-framework/ReduxCore/assets/img/2cr.png',
                    'no'  => THEME_URI . '/core/options/redux-framework/ReduxCore/assets/img/1col.png',
                    'left'  => THEME_URI . '/core/options/redux-framework/ReduxCore/assets/img/2cl.png',
                ),
                'std' => $layout
            ),
            // Sidebars
                array(
                    'name'  => null,
                    'id'    => THEME_SLUG . "_page_widgets_area",
                    'desc'  => __( 'Select widgets area for this page.', THEME_SLUG ),
                    'type'  => 'select_advanced',
                    'multiple'    => false,
                    'options'  => $sidebars_list,
                    'placeholder' => __( 'Select Widgets Area', THEME_SLUG )
                )
        )
    );
    Ответ написан
    1 комментарий
  • Не работает форматирование страниц (page.php) WordPress, как надо. Есть идеи?

    Была такая же проблема на версии 4.1 переустановил ВП и все норм
    Ответ написан
  • Как заставить работать пагинацию при вы воводе статей с WP_Query()?

    if (!function_exists('pagination')) { // если ф-я уже есть в дочерней теме - нам не надо её определять
    	function pagination() { // функция вывода пагинации
    		global $wp_query; // текущая выборка должна быть глобальной
    		$big = 999999999; // число для замены
    		$links = paginate_links(array( // вывод пагинации с опциями ниже
    			'base' => str_replace($big,'%#%',esc_url(get_pagenum_link($big))), // что заменяем в формате ниже
    			'format' => '?paged=%#%', // формат, %#% будет заменено
    			'current' => max(1, get_query_var('paged')), // текущая страница, 1, если $_GET['page'] не определено
    			'type' => 'array', // нам надо получить массив
    			'prev_text'    => 'Назад', // текст назад
    	    	'next_text'    => 'Вперед', // текст вперед
    			'total' => $wp_query->max_num_pages, // общие кол-во страниц в пагинации
    			'show_all'     => false, // не показывать ссылки на все страницы, иначе end_size и mid_size будут проигнорированны
    			'end_size'     => 15, //  сколько страниц показать в начале и конце списка (12 ... 4 ... 89)
    			'mid_size'     => 15, // сколько страниц показать вокруг текущей страницы (... 123 5 678 ...).
    			'add_args'     => false, // массив GET параметров для добавления в ссылку страницы
    			'add_fragment' => '',	// строка для добавления в конец ссылки на страницу
    			'before_page_number' => '', // строка перед цифрой
    			'after_page_number' => '' // строка после цифры
    		));
    	 	if( is_array( $links ) ) { // если пагинация есть
    		    echo '<ul class="pagination">';
    		    foreach ( $links as $link ) {
    		    	if ( strpos( $link, 'current' ) !== false ) echo "<li class='active'>$link</li>"; // если это активная страница
    		        else echo "<li>$link</li>"; 
    		    }
    		   	echo '</ul>';
    		 }
    	}
    }
    Ответ написан
  • Как полностью закрыть сайт от индексации, по причине вирусного заражения?

    User-agent: *
    Disallow: /
    достаточно, ну для уверенности можно еще и в настройках запретить индекс
    Ответ написан
    Комментировать
  • Интеграция 1с и wordpress, какой выбрать плагин?

    во первых поиск по сайту
    во вторых пользуйтесь поисковиками типа google и\или yandex
    Ответ написан
    Комментировать
  • Как в WordPress на странице Москва показывать юзеров с городом Москва в профиле?

    а не проще сделать выборку по тегу и в ссылке указать адрес нужного тега ?
    вот
    Ответ написан
    Комментировать