• Существует ли плагин для WP перегенерации постоянных ссылок в базе?

    HectorPrima
    @HectorPrima
    программист
    Внимание! Следующий код лучше сначала проверить на локалке или на копии сайта.

    Как то так. В корне wordpress запустить в баше. Типа php wp-reb.php
    <?php
    
    if (empty($wp)) {
        require_once('wp-config.php');
    }
    
    global $wpdb;
    
    $posts = $wpdb->get_results(
        "SELECT
        	p.ID, p.post_name
       	 FROM
       	 	wp_posts p
         WHERE
            p.post_type = 'post' AND p.post_status = 'publish'");
    
    $double = array();
    $rewrite = array();
    
    foreach($posts as $post){
    	if (!array_key_exists($post->post_name,$double)){
    		$double[$post->post_name] = 0;
    	}else{
    		$double[$post->post_name] += 1;
    		$rewrite[$post->ID] = $post->post_name . "-" . $double[$post->post_name];
    	}
    }
    
    foreach($rewrite as $key => $value){
    	$wpdb->update( 'wp_posts',
    		array( 'post_name' => $value ),
    		array( 'ID' => $key )
    	);
    }
    Ответ написан
    5 комментариев
  • Как закрыть определенную папку от доступа неавторизованных пользователей WP?

    HectorPrima
    @HectorPrima
    программист
    Не проще написать парсер который закачает все статьи в wordpress!?
    Просто вы такие костыли лепите...
    Ответ написан
    1 комментарий
  • Как корректно возвращать назад?

    iLLuzor
    @iLLuzor
    Java, Kotlin, Android Developer
    Обрабатывайте нажатие на up в коде:
    override fun onOptionsItemSelected(item: MenuItem): Boolean {
       if (item.itemId == android.R.id.home) finish()
       return super.onOptionsItemSelected(item)
    }
    Ответ написан
    1 комментарий
  • Как сделать такой фильтр ( wordpress + acf )?

    @id_baton4eg
    я бы сделал так:
    1) создаем форму с нужными инпутами
    2) обрабатываем её через ajax, отправляем post запрос к get_posts()
    3) получаем ответ, вставляем его html в нужном месте.
    Ответ написан
    Комментировать
  • Как добавить категории для произвольных типов записи?

    alex-1917
    @alex-1917
    Если ответ помог, отметь решением
    Я ж писал уже!!!!
    Авторство не мое, можешь по ключевым словам найти в гугле, НО я тут поправил пару моментов, так что код рабочий!
    -->> functions.php

    Создаем новый тип поста sm_project:
    spoiler
    function create_post_type() {
      $labels = array(
        'name'               => 'Projects',
        'singular_name'      => 'Project',
        'menu_name'          => 'Projects',
        'name_admin_bar'     => 'Project',
        'add_new'            => 'Add New',
        'add_new_item'       => 'Add New Project',
        'new_item'           => 'New Project',
        'edit_item'          => 'Edit Project',
        'view_item'          => 'View Project',
        'all_items'          => 'All Projects',
        'search_items'       => 'Search Projects',
        'parent_item_colon'  => 'Parent Project',
        'not_found'          => 'No Projects Found',
        'not_found_in_trash' => 'No Projects Found in Trash'
      );
    
      $args = array(
        'labels'              => $labels,
        'public'              => true,
        'exclude_from_search' => false,
        'publicly_queryable'  => true,
        'show_ui'             => true,
        'show_in_nav_menus'   => true,
        'show_in_menu'        => true,
        'show_in_admin_bar'   => true,
        'menu_position'       => 5,
        'menu_icon'           => 'dashicons-admin-appearance',
        'capability_type'     => 'post',
        'hierarchical'        => false,
        'supports'            => array( 'title', 'editor', 'author', 'thumbnail', 'excerpt', 'comments' ),
        'has_archive'         => true,
        'rewrite'             => array( 'slug' => 'projects' ),
        'query_var'           => true
      );
    
      register_post_type( 'sm_project', $args );
    }


    Создаем две таксономии для него, как и стандартные у ВП, т.е. типа категория sm_project_type и типа тег sm_project_attribute:
    spoiler
    function create_taxonomies() {
    
      // Add a taxonomy like categories
      $labels = array(
        'name'              => 'Types',
        'singular_name'     => 'Type',
        'search_items'      => 'Search Types',
        'all_items'         => 'All Types',
        'parent_item'       => 'Parent Type',
        'parent_item_colon' => 'Parent Type:',
        'edit_item'         => 'Edit Type',
        'update_item'       => 'Update Type',
        'add_new_item'      => 'Add New Type',
        'new_item_name'     => 'New Type Name',
        'menu_name'         => 'Types',
      );
    
      $args = array(
        'hierarchical'      => true,
        'labels'            => $labels,
        'show_ui'           => true,
        'show_admin_column' => true,
        'query_var'         => true,
        'rewrite'           => array( 'slug' => 'type' ),
      );
    
      register_taxonomy('sm_project_type',array('sm_project'),$args);
    
      // Add a taxonomy like tags
      $labels = array(
        'name'                       => 'Attributes',
        'singular_name'              => 'Attribute',
        'search_items'               => 'Attributes',
        'popular_items'              => 'Popular Attributes',
        'all_items'                  => 'All Attributes',
        'parent_item'                => null,
        'parent_item_colon'          => null,
        'edit_item'                  => 'Edit Attribute',
        'update_item'                => 'Update Attribute',
        'add_new_item'               => 'Add New Attribute',
        'new_item_name'              => 'New Attribute Name',
        'separate_items_with_commas' => 'Separate Attributes with commas',
        'add_or_remove_items'        => 'Add or remove Attributes',
        'choose_from_most_used'      => 'Choose from most used Attributes',
        'not_found'                  => 'No Attributes found',
        'menu_name'                  => 'Attributes',
      );
    
      $args = array(
        'hierarchical'          => false,
        'labels'                => $labels,
        'show_ui'               => true,
        'show_admin_column'     => true,
        'update_count_callback' => '_update_post_term_count',
        'query_var'             => true,
        'rewrite'               => array( 'slug' => 'attribute' ),
      );
    
      register_taxonomy('sm_project_attribute','sm_project',$args);
    }
    Ответ написан
    1 комментарий
  • Сделать запуск другого android приложения?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Java
    Седой и строгий
    Отправить intent.
    Ответ написан
    8 комментариев
  • Можно ли увеличить вместимость stringа?

    iLLuzor
    @iLLuzor
    Java, Kotlin, Android Developer
    Это не ограничение длины строки, а ограничение длины строковой переменной при инициализации, которое равно 2^16.
    Можно разбить длинную строку на куски и собрать из них нужную строку:
    String str1 = "...";
    String str2 = "...";
    String str3 = "...";
    
    String myString = str1 + str2 + str3;


    Но лучше вынести эту строку в ресурсы или во внешний файл.
    Ответ написан
    3 комментария
  • На wordpress сейчас можно сделать любой сайт?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    На wordpress сейчас можно сделать любой сайт?

    Если речь о "собрать из премиум-темы и плагинов", то нет. И даже то что вроде бы да, на самом деле нет и боль.
    Если речь о разработке, с использованием по необходимости всего, чего угодно (в том числе и вне самого WP) - тогда да. Например, WP вполне можно оставить чисто как бекенд/админку для редакторов. Его можно вполне подружить с микросервисами. Его database schema можно расширить под свои нужды. Да много чего, практически все что угодно, если вы software developer, а не что-то типа "jquery developer", "wordpress developer" и тд.

    Боюсь, что на wordpress будет проблематично масштабировать.

    Та масштабируется он, точно так же как и все остальное. Посмотрите на wordpress.com в конце концов, и на другие крупные проекты на WP. Имхо, если проект уже на нем, то всегда проще допилить все что нужно под WP, чем переписывать все с нуля и мигрировать.
    Ответ написан
    Комментировать
  • На wordpress сейчас можно сделать любой сайт?

    san_jorich
    @san_jorich
    Творческий кодер
    Откуда такой скептицизм по поводу WP ?
    Wordpress - лишь набор инструментов в руках разработчика. Конечный продукт зависит от того как этим набором пользоваться. Смастеришь костыль - покостыляешь. Смастеришь колесо с поршнями - помчишь аки ветер
    Ответ написан
    Комментировать
  • Как вывести посты по категориям?

    san_jorich
    @san_jorich
    Творческий кодер
    Выводится криво.

    Криво всмысле CSS или вмсысле данные не выводятся, не все записи итд ?
    Ответ написан
    8 комментариев
  • Что учить первым OOP или java?

    @red-barbarian
    Это практически две разные сферы.
    В хорошей книге всегда будет java + основы ООП.
    Но проблема в том что основы не меняют обычное мышление новичка на объектное.
    Т.е. по привычке все пишется и понимается с точки зрения процедурной парадигмы. А нужно старается понимать с точки зрения где сложная система это набор объектов. Поэтому хорошо бы взять что то простое и паралельно изучать объектно ориентированное проектирование.

    Также лучше сразу читать основы чистого кода. Что бы потом не переучиваться и не ломать себя.
    Три вещи параллельно.
    Хотя многое зависит и от Вашего опыта.
    Ответ написан
    Комментировать
  • Что учить первым OOP или java?

    @aol-nnov
    > Что учить первым подход или язык?

    кажется, в этом вопросе есть 99,9% ответа. не задавай больше таких вопросов. чаще думай головой :)
    Ответ написан
    Комментировать
  • Как с помощью переключателя Switch сделать видимым/невидимым объект ExtractEditText?

    @replicate Автор вопроса
    нет такой силы, чтобы нас победила
    Не хватало обработчика события на свитчере,вопрос решен.
    switch1.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
                    @Override
                    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                        //проверяем свитчер если он активен, то окно с датой появляется
                        if (isChecked){
                            DatePlain.setVisibility(View.VISIBLE);
                        } else {
                            DatePlain.setVisibility(View.GONE);
    
                        }
                    }
                });
    Ответ написан
    Комментировать
  • Где в WordPress хранятся иконки админпанели?

    Palych_tw
    @Palych_tw
    Типа веб-разработчик
    Никакой это не Font Awesome. Это собственные иконки WordPress. Шрифт так и называется dashicons. Лежит он в wp-includes/fonts
    Ответ написан
    Комментировать
  • Как правильно реализовать на wordpress этот блок?

    MiraSmurkov
    @MiraSmurkov
    Wordpress evangelist
    Такой блок называется Композитный (составной) продукт.
    Это когда ты сам собираешь товар как конструктор.

    Знаю как его реализовать на WooCommerce.
    Вообще если честно глупо делать продажи без автоматической настройки всего.
    Короче использовать можно сверху WC этот плагин - YITH COMPOSITE PRODUCTS FOR WOOCOMMERCE
    Вот ссылка на его - https://yithemes.com/themes/plugins/yith-woocommer...

    Вот как круто все это может выглядеть - https://plugins.yithemes.com/yith-composite-produc...

    Могу помочь с установкой. Есть в наличии он.
    Пиши, если что.
    Ответ написан
    4 комментария
  • Можно ли так делать в коде?

    Palych_tw
    @Palych_tw
    Типа веб-разработчик
    $update - это аргумент, который может принимать данный метод, но внутри метода никак не используется. Может, осталось с прошлых версий, может, задел на будущее)) Плагины такие же люди пишут, и допускают такие же ошибки.
    Ответ написан
    1 комментарий
  • Как останосить аудиозапись AudioPlayer, которая находится в другом классе?

    @Div100
    "в четвертом классе, во втором"

    Совет: если у тебя в голове, есть какая-то мысль или проблема, и ты ее изложил в "пару слов", вовсе не означает, что те, кто прочитает твое изложение мысли, будут видеть тоже самое, что видишь ты. Просто не хватит контекста, который есть у тебя.

    По сабжу:
    Твой класс должен уметь управлять этим объектом для начала. Когда ты будешь вызывать метода stop(), то класс должен уже быть инициализированным этим объектом, который проигрывает аудиозапись, тогда он сможет ее остановить.
    Поэтому если это не твой случай, либо пиши код выкладывай, либо формулируй вопрос яснее. Удачи!
    Ответ написан
    Комментировать
  • Текст ссылки начинает мигать и не нажиматься при наведении?

    webinar
    @webinar
    Учим yii: https://youtu.be/-WRMlGHLgRg
    Нашел вот это:
    #header-section .container, #hospitals, #hospitals .icon, #houzez-gmap-main, #houzez-listing-map, 
    #houzez-listing-map-vc, #houzez_ajax_container .map-notfound, #libraries, #libraries .icon, #listing-
    map, #pharmacies, #pharmacies .icon, #schools, #schools .icon, #section-body, #section-body.houzez-
    body-half .property-listing, #singlePropertyMap, #splash-section, #splash-section .splash-inner-content,
     #supermarkets, #supermarkets .icon, #transportation, #transportation .icon, .accord-block .accord-tab, 
    .account-action, .account-action .user-image, .account-dropdown>ul, .account-dropdown>ul>li, .actions 
    li, .add-title-tab, .add-title-tab .add-expand:before, .advanced-search, .advanced-search-mobile, 
    .advanced-search-mobile .advance-fields, .advanced-search-mobile .single-search, .agent-info-block 
    .agent-thumb, .agent-media .media-left, .agent-media .next-prev-block .media-right, .agents-block, 
    .auto-complete .media, .banner-module, .banner-module .owl-item, .banner-parallax, .banner-search-
    main .form-group .bootstrap-select.open, .banner-search-main .gform_wrapper li .bootstrap-select.open, 
    .banner-search-tabs .search-tab-inner, .banner-slider .banner-link, .banner-video, .board-header, .board-panel-menu, .board-panel-menu>li, .board-panel-menu>li a, .bypostauthor, .caption-bottom .detail-bottom, .class-energy, .class-energy-indicator, .comments-block .media-body .reply .fa, .compare-thumb-main .compare-thumb, .dashboard-content-area, .detail-bar .detail-content-tabber, .detail-media, 
    .detail-media #gallery, .detail-slider-nav-wrap .item, .detail-sub-title, .detail-top, .detail-top .tab-
    content, .detail-top.detail-top-full .container, .detail-top.detail-top-full .header-detail .actions, .detail-
    top.detail-top-full .label, .detail.detail-bottom, .figure-block, .file-upload-block, .footer .read .fa, .footer-
    widget.widget_search form div, .gallery-area, .gallery-area .gallery-inner, .gallery-item, .gallery-thumb, 
    .gallery-thumb img, .gform_wrapper .banner-search-main li .bootstrap-select.open, .gform_wrapper 
    .widget-calculate li, .gform_wrapper .widget-change .body-inner>.button, .grid-view .property-item-v2
     .body-inner, .grid-view .property-item-v2 .item-body-bottom, .grid-view .property-item-v2 .item-body-
    top, .header-detail .label-wrap, .header-media, .header-media-wrap, .header-mobile>.container, .header-
    section, .header-section .logo img, .header-section-1.nav-right .container, .header-section-1.nav-right 
    .header-left, .header-section-2, .header-section-3, .header-section-4, .header-section-4 .logo img, .header-section-4.nav-right .container, .header-section-4.nav-right .header-left, .header-section-5, .ihf-
    share-btn-more .fa-share, .input-icon, .input-icon input, .item-body .table-cell, .item-thumb, .lightbox-
    arrow, .lightbox-header, .lightbox-left, .lightbox-popup, .lightbox-popup .popup-inner, .list-search form, 
    .loader-ripple, .location-block, .map-info-box, .media-tabs-list li, .mobile-nav .nav-dropdown li, .mobile-
    nav .nav-dropdown ul, .mobile-nav .nav-trigger, .msg-type-block, .my-property .my-actions, .navi>ul 
    .sub-menu li, .navi>ul>li, .next-prev-block .agent-media .media-right, .package-block, .parallax-
    properties-media, .partner-block, .plan-tabs li, .print-banner .print-main-image, .profile-detail-block 
    .profile-image, .property-item-v2 .item-body, .property-item-v2.item-grid .body-inner, .property-item-
    v2.item-grid .item-body-bottom, .property-item-v2.item-grid .item-body-top, .property-item.item-grid, 
    .property-item.item-grid .phone, .rating-container .caption .label, .rating-container .rating, .rating-wrap,
     .saved-search-list .saved-search-block, .search-expand-btn, .search-location, .services-module .service-
    block, .single-input-search, .splash-header.nav-right .container, .splash-header.nav-right .header-left, 
    .splash-search, .steps-progress-main .steps-progress span, .sticky_nav .header-transparent, .team-block,
     .top-bar, .top-bar .top-bar-left, .top-bar .top-bar-right, .top-contact .top-bar-contact .fa, .top-contact 
    .top-bar-phone .fa, .top-drop-downs>li, .user-dashboard-right, .video-block, .widget-calculate .form-
    group, .widget-calculate .gform_wrapper li, .widget-categories a, .widget-categories li, .widget-change 
    .body-inner>.btn, .widget-change .body-inner>.gform_button, .widget-change .gform_wrapper .body-
    inner>.button, .widget-change .gform_wrapper .gform_page_footer .body-
    inner>.button.gform_next_button, .widget-pages a, .widget-pages li, .widget_archive a, .widget_archive 
    li, .widget_categories a, .widget_categories li, .widget_houzez_twitter .owl-theme .owl-nav [class*=owl-],
     .widget_meta a, .widget_meta li, .widget_nav_menu a, .widget_nav_menu li, .widget_pages a, 
    .widget_pages li, .widget_recent_comments a, .widget_recent_comments li, .widget_recent_entries a, 
    .widget_recent_entries li, .widget_search form div, figure {
        position: relative;
    }

    вспомнил анекдот "дядя, такого даже в цирке не показывают"

    А по существу - скорее всего именно в position дело: блок получает hover, становится absolute, теряет фокус, становится relative, опять получает hover и т.д.
    Ответ написан
    1 комментарий
  • Как определить количество черных пятниц(13 числа) в году?

    @kacetal
    LocalDate dateInit = LocalDate.of(2018, 1, 1);
            while (dateInit.getYear() != 2030) {
                if (dateInit.getDayOfWeek() == DayOfWeek.FRIDAY && dateInit.getDayOfMonth() == 13) {
                    System.out.println(dateInit.toString());
                }
                dateInit = dateInit.plusDays(1);
            }
    Ответ написан
    2 комментария