• Как закрыть от пользователя доступ по таксономии?

    san_jorich
    @san_jorich
    Творческий кодер
    Можно через опцию пользователя.
    Создаете опцию region и резрешаете допуск текущему пользователю по совпадению значений region и названия, лэйбла, id.. да какого угодно из возможных параметров вашей таксономии
    Ответ написан
    3 комментария
  • Как сделать массовое редактирование меток записей в Wordpress?

    san_jorich
    @san_jorich
    Творческий кодер
    массовое редактирование меток
    и
    добавить в пустое поле в графе метки
    - это разные задачи. Может как-то конкретнее ситуацию опишите?
    Если пустое поле нужно для добавления.. это ни к чему.. На мой взгляд эффективнее будет добавить пару кнопок и обрабатывать их события jQuery. Например:
    1 - в таблице записей: редактирование меток конкретной записи в каждой строке записей.
    2 - сверху/снизу: кнопка массового добавления/удаления метки(если связь присутствует то разорвать)

    Для обработки подключаем SweetAlert..JS и, в первом случае через запятую выводим имеющиеся теги, также сохраняя post_ajax-ом изменения разделяя теги запятой, а во втором в пустое текстовое поле вбиваем тег(и) которые можно(добавив пару кнопок в alert) массово удалить, добавить, или изменить(добавив еще один input для нового значения)
    Ответ написан
    Комментировать
  • Как добавить поле поиск по id в toolset или научить текстовое поле это делать?

    san_jorich
    @san_jorich
    Творческий кодер
    Самый проверенный способ - jQuery перехват + ajax post запрос на "стандартный" WP_Query
    Ответ написан
    Комментировать
  • Пробую создать плагин, как сохранять данные с страницы настроек?

    san_jorich
    @san_jorich
    Творческий кодер
    Почитайте Блог Миши, или Каму. Если не получиься самостоятельно пишите "манипуляции".
    А вообще add_option get_option update_option итд.
    Бонус )
    <?php
    /*
    Plugin Name: My_Word
    Plugin URI: https://toster.ru/q/572856
    Description: Плагин делает всякие извращения с этим словом и выводит результат в нужном месте с помощью шорткода
    Version: 1.0
    Author: Александр Соболев
    Author URI: http://vk.com/san_jorich
    License: GPL2
    */
    /*  Copyright 2018  SOBOLEV_ALEKSANDER  (email : samigrai@mail.ru) */
    
    function mw_options() {
      global $mw_page;
      add_options_page( 'My Word Options', 'My Word Options', 'manage_options', $mw_page, 'mw_option_page');  
    }
    add_action('admin_menu', 'mw_options');
    
    function mw_option_page(){
      global $mw_page;
      ?><div class="wrap">
        <h2>My Word Option's Page</h2>
        <form method="post" enctype="multipart/form-data" action="options.php">
          <?php 
          settings_fields('mw_options'); 
          do_settings_sections($mw_page);
          ?>
          <p class="submit"><input type="submit" class="button-primary" value="<?php _e('Save Changes') ?>" /></p>
        </form>
      </div><?php
    }
     
    function mw_option_settings() {
      global $mw_page;	
      register_setting( 'mw_options', 'mw_options', 'mw_validate_settings' ); 	
      add_settings_section( 'mw_section', 'Основные настройки', '', $mw_page ); 	
      $mw_field_params = array(
        'type'      => 'text',
        'id'        => 'my_word',
        'desc'      => 'Слово для манипуляций.', 
        'label_for' => 'my_word' 
      );
      add_settings_field( 'my_text_field', 'Слово', 'mw_option_display_settings', $mw_page, 'mw_section', $mw_field_params ); 
    }
    add_action( 'admin_init', 'mw_option_settings' );
     
    function mw_option_display_settings($args) {
      extract( $args ); 
      $option_name = 'mw_options'; 
      $o = get_option( $option_name ); 
      switch ( $type ) {  
        case 'text':  
          $o[$id] = esc_attr( stripslashes($o[$id]) );
          echo "<input class='regular-text' type='text' id='$id' name='" . $option_name . "[$id]' value='$o[$id]' />";  
          echo ($desc != '') ? "<br /><span class='description'>$desc</span>" : "";  
        break;
    
      }
    }
     
    function mw_validate_settings($input){foreach($input as $k => $v) {$valid_input[$k] = trim($v);} return $valid_input;}
    
    function view_manipulations(){
    $mw_option = get_option('mw_options'); $result_div='<div id="mw_option">'.$mw_option['my_word'].'</div>';return $result_div;}
    add_shortcode( 'mw_option', 'view_manipulations' );
    ?>
    Ответ написан
    2 комментария
  • Как сделать единый вход (авторизацию) для доменов и поддоменов?

    san_jorich
    @san_jorich
    Творческий кодер
    Если мы на странице входа то:
    var login = jQuery('#login').val();
    var password = jQuery('#password').val();
    foreach (страницы аки страница){
    шлем ajax post с login и password
    - Там можно сформировать url вида сайт/страницавхода?логин=login&пароль=password (точно не помню)
    - Или jQuery на каждый input подставлять значение
    Ежели success function(){ console.log('Да прибудет с нами счастье!..'); alert('счастье и печеньки');}
    }
    Ответ написан
    Комментировать
  • Как реализовать прием post запроса в wordpress?

    san_jorich
    @san_jorich
    Творческий кодер
    ajax Вам в помощь! nopriv в ajax action. Более конкретно сложно что-то посоветовать - формулируйте вопрос тщательнее
    Ответ написан
  • Как создать свои дескрипторы, типа Plugin Name, URI итд?

    san_jorich
    @san_jorich Автор вопроса
    Творческий кодер
    Я уже было начал писать "костыль" с регуляркой типа preg_match( '/^[ \t\/*#@]*' ) когда наткнулся на решение:
    $form_data = get_file_data($file, array('title'=>'Form Title') );

    В нужном файле я написал
    <?/*
    Form Title: Название формы
    */?>

    И вывел это через echo $form_data['title'];
    Ответ написан
    Комментировать
  • Как правильно делать мелкие записи/информацию для редактирования в вордпресс?

    san_jorich
    @san_jorich
    Творческий кодер
    Кирилл, все зависит от задачи. Опишите более точно, что Вы пытаетесь сделать?
    "Мелие записи" это что? Можно сделать одну запись и все остальное реализовывать через комментарии, сделав форму с произвольными полями комментариев.
    Можно сделать дополнительные поля к записи (и обычной и кастомного типа)
    При острой необходимости можно вообще написать плагин создающий свою таблицу в бд, и все записывающий в нее. Реализаций на WP вагон и тележка.

    В вашем случае это вообще похоже на личный кабинет пользователя. Это реализуется своими способами, и доп.поля крепятся к профилю. Вы даже можете создать свой тип пользователя
    Ответ написан
    Комментировать
  • Модальный просмотр файл в кастомной колонке?

    san_jorich
    @san_jorich
    Творческий кодер
    1. Подключаем SweetAllert
    2.
    <a id="viewlink" path='https://domain.com/wp-admin/upload.php?item=". $file['ID']."'>Посмотреть файл</a>

    3.
    jQuery('#viewlink').on('click',function(){
       var path = jQuery(this).attr('path');
       swal({ title: 'Файл',html: jQuery('<div>').text('<video scr="'+path+'"></video>); }) // Может быть что угодно. Зависит от типа файла
    });

    Код нужно править и дорабатывать, это один из вариантов
    Ответ написан
    Комментировать
  • Как заставить калькулятор отправлять мне расчет на почту?

    san_jorich
    @san_jorich
    Творческий кодер
    jQuery.
    Берем id кнопки, собираем данные с формы отправляем JSON Ajax-ом в php, где отправляем. Итого строк не более 30. Смелее!
    Ответ написан
    Комментировать
  • Как перевести свою тему на полное управление через админ панель Wordpress?

    san_jorich
    @san_jorich
    Творческий кодер
    Для начала самопис нужно "подогнать" под стандарты WP.
    Копайте в сторону wordpress theme options.
    Отталкивайтесь от
    function my_register_settings() {
        register_setting( 'my_theme_options', 'my_options', 'my_validate_options' );
    }
     
    add_action( 'admin_init', 'my_register_settings' );

    Хороших статей и примеров в интернете предостаточно
    Ответ написан
    Комментировать
  • Где плагины WordPress хранят информацию своих настроек и конфигураций?

    san_jorich
    @san_jorich
    Творческий кодер
    ищите по папке плагина текст update_options, смотрите, что в скобках, и эти переменные ищите в wp_options и wp_postmeta
    Ответ написан
    Комментировать
  • Иероглифы в админке wp?

    san_jorich
    @san_jorich
    Творческий кодер
    в каком-то плагине (вероятнее всего самописный) в одном из php файлов в конце после ?> лишние символы, которых там не должно быть. А в вашем случае headers already sent говорит еще и о лишних символах перед <?php Их там не должно быть.
    Ответ написан
    Комментировать
  • Как реализовать загрузку файлов клиентом на сайте сразу в облако?

    san_jorich
    @san_jorich
    Творческий кодер
    я уже в отчаянии
    Не надо так :)
    Вам нужно почитать про облака с FTP доступом. Например 1cloud. Плагинов\заливаек тоже немало, но написать свой с нужной формой и функцией отправки не так сложно, как кажется
    Ответ написан
    Комментировать
  • Откуда глюк autocopete?

    san_jorich
    @san_jorich Автор вопроса
    Творческий кодер
    Решил через
    if (window.location.href.indexOf("post-new.php?post_type=") > -1){ }

    Но это костыль.. корня проблеммы так и не понял.. Неужели какой-то конфликт? Вроде версии jQ с WP подтягиваются.. последние, родные
    Ответ написан
    Комментировать
  • Как заголовки связанных произвольных записей?

    san_jorich
    @san_jorich
    Творческий кодер
    Создайте таксономии, выводите термы. В Вашем случае вложенность может быть интереснее: город-район-улица. Ссылку можно оформить как вывод ajax запроса записей где искомый(в вашем случае выведенный) терм совпадает с термом 1го, 2го, а в больших локациях и 3го уровней
    Ответ написан
    Комментировать
  • Как скрыть пост по метке(тегу)?

    san_jorich
    @san_jorich
    Творческий кодер
    Есть как минимум два варианта решения:
    1) Скрыть по какому-либо событию уже после того как выведется ? В основной цикл вывода в слой (div) дописываете например атрибут равный id slug или имени нужной метки, и по событию (нажатиеили что угодно другое) jQuery скриптом скрываете или удаляете div с записью.
    2) Не выводить.. Написать правильные аргументы для основного цикла
    Ответ написан
  • Какой использовать плагин для счетчика кликов / заказов на wordpress?

    san_jorich
    @san_jorich
    Творческий кодер
    Можно написать самостоятельно Примерно строк 10-15 и все заработает.
    1)Регистрируйте настройку "Количество заков"
    2)Подключаете jQuery скрипт который при клике на кнопь ajax-ом командует php увиличить переменную опции на 1
    3) Шоткодом выводите в нужное место шаблона результат
    4) Наслаждаетесь результатом
    Ответ написан
    5 комментариев
  • Как связать посты из двух произвольных типов записи?

    san_jorich
    @san_jorich
    Творческий кодер
    Город - Таксономия Объекта недвижимости.
    Объект - произвольный тип записи
    if ( ! function_exists('add_estate_post_type') ) {
    
    //  Регистрируем тип недвижиимость
    function add_estate_post_type() {
    
    	$labels = array(
    		'name'                  => 'Объекты',
    		'singular_name'         => 'Объект',
    		'menu_name'             => 'Каталог недвижимости',
    		'name_admin_bar'        => 'Каталог недвижимости',
    		'archives'              => 'Архив объектов',
    		'attributes'            => 'Аттрибуты объекта',
    		'parent_item_colon'     => 'Главный объект',
    		'all_items'             => 'Все объекты',
    		'add_new_item'          => 'Доавить новый объект',
    		'add_new'               => 'Добавить объект',
    		'new_item'              => 'Новый объект',
    		'edit_item'             => 'Редактировать объект',
    		'update_item'           => 'Обновить объект',
    		'view_item'             => 'Смотреть объект',
    		'view_items'            => 'Смотреть объекты',
    		'search_items'          => 'Найти объект',
    		'not_found'             => 'Не найдено',
    		'not_found_in_trash'    => 'В корхине не найдено',
    		'featured_image'        => 'Featured Image',
    		'set_featured_image'    => 'Установить фото объекта',
    		'remove_featured_image' => 'Удалить фото объекта',
    		'use_featured_image'    => 'Использовать в качестве фото объекта',
    		'insert_into_item'      => 'Добавить к объекту',
    		'uploaded_to_this_item' => 'Добавить к этому объекту',
    		'items_list'            => 'Список объектов',
    		'items_list_navigation' => 'Items list navigation',
    		'filter_items_list'     => 'Фильтр объектов',
    	);
    	$rewrite = array(
    		'slug'                  => 'estate',
    		'with_front'            => true,
    		'pages'                 => true,
    		'feeds'                 => true,
    	);
    	$args = array(
    		'label'                 => 'Объект',
    		'description'           => 'Post Type Description',
    		'labels'                => $labels,
    		'supports'              => array( 'title' ),
    		'taxonomies'            => array( 'estate' ),
    		'hierarchical'          => true,
    		'public'                => true,
    		'show_ui'               => true,
    		'show_in_menu'          => true,
    		'menu_position'         => 5,
    		'show_in_admin_bar'     => true,
    		'show_in_nav_menus'     => true,
    		'can_export'            => true,
    		'has_archive'           => true,
    		'exclude_from_search'   => false,
    		'publicly_queryable'    => true,
    		'query_var'             => 'post_type',
    		'rewrite'               => $rewrite,
    		'capability_type'       => 'page',
    	);
    	register_post_type( 'estate', $args );
    
    }
    add_action( 'init', 'add_estate_post_type', 0 );
    
    }


    И таксономия город (Локация, Район итд)
    // Регистрация Районов (estate_district)
    function estate_district_taxonomy() {
    
        $labels = array(
            'name'                       => 'Районы',
            'singular_name'              => 'Районы',
            'menu_name'                  => 'Районы',
            'all_items'                  => 'Все районы',
            'parent_item'                => 'Главный район',
            'parent_item_colon'          => 'Parent Item:',
            'new_item_name'              => 'Название нового района',
            'add_new_item'               => 'Добавить район',
            'edit_item'                  => 'Редактировать район',
            'update_item'                => 'Обновить район',
            'view_item'                  => 'Смотреть район',
            'separate_items_with_commas' => 'Добавление районов через запятую',
            'add_or_remove_items'        => 'Добавить или удалить район',
            'choose_from_most_used'      => 'Выбрать из наиболее популярных',
            'popular_items'              => 'Популярные районы',
            'search_items'               => 'Найти район',
            'not_found'                  => 'районов нет.',
            'no_terms'                   => 'Такого района нет.',
            'items_list'                 => 'Список районов',
            'items_list_navigation'      => 'Items list navigation',
        );
        $args = array(
            'labels'                     => $labels,
            'hierarchical'               => true,
            'public'                     => true,
            'show_ui'                    => true,
            'show_admin_column'          => true,
            'show_in_nav_menus'          => true,
            'show_tagcloud'              => true,
            'show_in_quick_edit'         => true,
            'meta_box_cb'                => false,
        );
        register_taxonomy( 'estate_district', array( 'estate' ), $args );
    
    }
    add_action( 'init', 'estate_district_taxonomy', 0 );
    Ответ написан
    Комментировать
  • Каким плагином можно в wp создать вариативное меню как в примере?

    san_jorich
    @san_jorich
    Творческий кодер
    Карточку можно натянуть bootstrap-ом.. Диалог через плагин jQuery.. sweetalert + Функция, формирующая связанные списки и переправляющая по результату выбора.. Готовых решений не попадалось
    Ответ написан
    Комментировать