• Как добавить в запись Wordpress featured_image при помощи wp_insert_post?

    anatoly_kulikov
    @anatoly_kulikov
    Помог ответ? Отметь решением!
    В Wordpress картинки - это тоже посты, поэтому если вам нужно к записи прикрепить какую-то обложку, то для этого вам нужно:
    1. либо id уже добавленной картинки вставить в мета поле записи
    2. либо сначала создать пост, получить его id, потом создать пост-изображение, получить его id, и потом вставить в мету первого


    Хотя, можно сделать так, чтобы картинка выводилась нестандартно - тогда ровно так же придумываем мету, туда указываем ссылку на картинку, а далее если у постов такая мера есть и она не пустая, то выводить изображение из ссылки по мете.
    Ответ написан
    1 комментарий
  • Как обеспечить идемпотентность запросов к API?

    neuotq
    @neuotq
    Прокрастинация
    С кукисами и прочим оставьте это на стандарты что уже вам даёт WP(и/или плагины что вы там используете).
    После нажатия купить, у вас создаётся запись о покупке в БД, со статусом не оплачен. У покупки во всех системах для создания инет магазинов и тп уникальный айди, вот на основе его и можно генерировать уникальный (допустим
    с помощью crypt) ключ идемпотентности.
    После успешной оплаты в БД статус меняется на оплчен и этот заказ и его айди больше никогда не используется. Даже при повторной покупке это будет уже клон этой, но с новым айди.
    Таким образом и себя защитите и в целом простое и относительно надёжное решение.
    Могут быть нюансы только когда оплата прошла, а ваш сервис это узнать через обратный webhook не смогла(допустим был лаг и тп) и запись в БД не стала - оплачен. Но обычно платёжные шлюзы даёт проверять статусы оплаты и по запросу, поэтому если не приходит ответ там в течении какого-то времени, можно запрашивать в ручную. Ну и затем в любом случае устаревает запрос на оплату(почти во всех платёжках есть тайм аут на то, в какое время можно оплатить уже после создания инвойса на их стороне), так что и тут в целом все норм.
    Ответ написан
    4 комментария
  • Как сделать, чтобы сайт приближался и не ломался?

    @vladislav198712
    Для того, чтобы сайт не ломался при масштабировании, можно использовать относительные единицы измерения вместо абсолютных, таких как пиксели или проценты. Например, можно использовать единицы измерения "em" или "rem", которые основаны на размере шрифта, а не на размере экрана. Это позволит элементам сайта масштабироваться пропорционально друг к другу и сохранять свою расстановку.

    Также можно использовать медиа-запросы для определения оптимальных размеров элементов при разных размерах экрана. Например, можно создать медиа-запросы для разных диапазонов ширины экрана и задать оптимальные размеры для элементов при каждом диапазоне. Например:

    @media (max-width: 768px) {
      /* Задать размеры для элементов при ширине экрана до 768px */
    }
    
    @media (min-width: 769px) and (max-width: 1024px) {
      /* Задать размеры для элементов при ширине экрана от 769px до 1024px */
    }
    
    @media (min-width: 1025px) {
      /* Задать размеры для элементов при ширине экрана от 1025px */
    }


    Кроме того, можно использовать векторную графику и шрифты, которые могут масштабироваться без потери качества.

    Чтобы сделать аккуратное увеличение сайта, как на Хабре, можно использовать CSS-свойство "transform: scale()". Это свойство позволяет масштабировать элементы сайта без изменения их размера на странице. Например, можно задать следующие стили для body:

    body {
      transition: transform .3s ease-in-out;
    }
    
    body.zoom-in {
      transform: scale(1.2);
    }


    Эти стили позволят масштабировать сайт с помощью класса "zoom-in". Когда этот класс добавляется к body, сайт увеличивается на 20% без изменения расстановки элементов.
    Ответ написан
    Комментировать
  • Как убрать уведомление темы в wordpress о переходе на платную версию?

    r4ze
    @r4ze
    // _ AppSec // Bug Bounty / Legal Hacking
    Привет.

    Попробуй вот так:
    add_action( 'wp_loaded', function(){
    	remove_action( 'admin_notices', 'enjoyblog_notice' );
    } );

    Можно добавить в functions.php для быстрого теста.
    Ответ написан
    2 комментария
  • Какой есть плагин для уведомления об ошибках в тексте?

    r4ze
    @r4ze
    // _ AppSec // Bug Bounty / Legal Hacking
    Привет.

    Есть вот такой плагин - Webmaster Spelling Notifications - он хоть и заброшен автором, но устарел не очень сильно, да и сам по себе плагин минимальный. Из консоли сайта установить его можно.

    Mistape - хоть плагин и "закрыли" из-за обнаруженной (но не раскрытой) уязвимости, скачать файлы всё равно можно. Только не нужно.

    Error Notification - не обновлялся 10 лет, так что тут тоже всё ясно.

    Ну или вот так попробуйте.
    Ответ написан
    2 комментария
  • Как лучше хранить данные в БД WordPress и выполнять экспорт/импорт в файл?

    wfantastic
    @wfantastic
    увлечен wordpress
    Для вашего случая, я бы рекомендовал использовать свою таблицу базы данных, созданную через $wpdb. Это позволит вам более гибко управлять структурой таблицы и производительностью.

    Как хранить данные

    Я бы рекомендовал создать две таблицы: одну для хранения кодов, а другую для хранения связанных с ними данных. В таблице кодов вы можете хранить только уникальный код, а в таблице данных вы можете хранить все связанные с ним данные, включая дату и другие фиксированные значения. Это упростит поиск и фильтрацию данных в будущем.

    Как делать экспорт/импорт в файл:

    Для экспорта и импорта данных в файл вы можете использовать стандартные функции экспорта и импорта WordPress, такие как export_wp() и import_wp(). Они позволяют экспортировать и импортировать содержимое WordPress, включая пользовательские типы записей и метаданные. Если вы используете свою таблицу, вы можете создать свои собственные функции экспорта и импорта, которые будут работать с вашей таблицей.

    Что касается того, как делать экспорт/импорт в файл раз в день, вы можете использовать планировщик задач WordPress, чтобы запускать скрипты экспорта и импорта в определенное время. Например, вы можете использовать функцию wp_schedule_event() для установки периодического запуска задач.

    Контроль размера таблицы:

    Чтобы контролировать размер таблицы, вы можете создать функцию удаления старых записей, которая будет удалять записи, которые старше заданного периода. Эту функцию можно запускать периодически через планировщик задач. Например, вы можете использовать функцию $wpdb->query() для удаления записей старше года.
    Ответ написан
    1 комментарий
  • Как задать ссылку на другую страницу в wordpress?

    d9d9_Sun
    @d9d9_Sun
    Продвигаю сайты.
    php файл нужно создать как template страницы, затем создать страницу в админке и назначить ей этот шаблон. И сделать обычную ссылку на эту страницу.
    Ответ написан
    Комментировать
  • Как обновить поля с carbon fields?

    AndiMandi
    @AndiMandi Автор вопроса
    Вроде юн, а уже на заводе :)
    Решил проблему совместно с Артем Золин
    1) Найдена ошибка в файле-обработчике:
    $number = iseet($_POST['_number']) ? $_POST['_number'] : '';
    , вместо iseet - isset.
    2) В HTML-форме,
    <input type="text" name="post" id="post" placeholder="Должность" value="<?php echo get_the_author_meta( '_post' ,$user_id);?>">
    . Обратите внимание на имя и идентификатор - они должны быть как имя кастомного мета-поля, то есть вот так:
    <input type="text" name="_post" id="_post" placeholder="Должность" value="<?php echo get_the_author_meta( '_post' ,$user_id);?>">
    И так во всех кастомных полях.
    3) с JS все в порядке, там ничего исправлять не нужно.
    4) чтобы обновить мета-поле Carbon Field, можно прописать вот так: update_user_meta($user_id, '_post', $post );. И так со всеми кастомными полями.
    Надеюсь в дальнейшем вам очень поможет :)
    Ответ написан
    Комментировать
  • Сильно не досчитывает кол-во просмотров у новостей функция, в чем может быть проблема и как ее решить?

    Stalker_RED
    @Stalker_RED
    Да, возможно get_post_meta() кешируется, лень смотреть код кеширующего плагина.

    Еще один косяк:
    $count++;
    update_post_meta()


    Представим, что был 1 просмотр, и потом еще 10 просмотров произошло одновременно. Десять раз был получен счетчик из базы (единица), увеличен (до двойки), и записан обратно, но в итоге получим двойку в БД, потому что на момент записи в переменной $count была двойка.

    Фиксится и то и другое элементарно, вместо "прочитать-увеличить-записать" делайте просто update с инкрементом даже не запрашивая текущее значение счетчика из базы
    UPDATE `myTable` SET `post_views`=`post_views`+1 WHERE `post_id`=42;
    Ответ написан
    2 комментария
  • Как создатется сайт безопасных сделок?

    Sanes
    @Sanes
    Готовых CMS нет и быть не может. Это сложная и дорогая бизнес-схема и разрабатывается индивидуально.
    Точнее CMS есть, но они вряд ли вам подойдут без существенной доработки. Например CS Cart Multivendor.
    Ответ написан
    2 комментария
  • Откуда кавычка в начале названия страницы WP?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Скорее всего криво закрытый тег. Внимательно просмотрите код разметки.
    Ответ написан
    Комментировать
  • Как использовать один header на всем проекте?

    V_A_B
    @V_A_B
    ¯\_(ツ)_/¯
    По сути на вопрос, который Вы задали, сами и ответили. Решение данной задачи заключается в правильной выборке. А вот, чтобы помочь Вам нет никаких данных. В чем проблема-то? Для Вас проблема написать более сложный тернарник (можно использовать обычный if else с определением переменной, которая будет нести в себе определенный класс)? Или Вы не знаете как проверить что-либо кроме главной? И вообще ...

    а как сделать для определенной страницы свои стили для header


    что за страницы? можно ведь и просто по id присваивать стили или по шаблону (is_page_template()) или is_single(), или is_singular() ( is_single() + is_page() + is_attachment() ).....

    есть масса возможностей для проверки, но Вы не поделились в этом направлении никакой инфой

    вот Вам пример тернарника из черновиков по извращаться

    global $post;
    if(!is_home()&&!is_404()&&!is_search()&&isset($post->ID)){$VAB_SEOA=get_post_meta($post->ID,'VAB_SEO',true);}
    
    $SEO_title=isset($VAB_SEOA['SEO_title'])?$VAB_SEOA['SEO_title']:(get_the_title()&&!is_home()&&!is_front_page()&&!is_archive()&&!is_search()?get_the_title()/*.' | '.get_bloginfo('name')*/:(is_home()||is_front_page()?get_bloginfo('name').' | '.get_bloginfo('description'):(is_404()?'404 - '.esc_html__('страница не существует','VAB'):(is_search()?esc_html__('Результаты поиска','VAB').': '.get_search_query():(is_archive()?(is_day()?esc_html__('Архив по дням','VAB').': '.get_the_date():(is_month()?esc_html__('Архив по месяцам','VAB').': '.get_the_date('F Y'):(is_year()?esc_html__('Архив по годам','VAB').': '.get_the_date('Y'):(is_category()?esc_html__('Категория архива','VAB').': '.single_cat_title('',false):(is_tag()?esc_html__('Архив по меткам','VAB').': '.single_tag_title('',false):(has_post_format()?esc_html__('Архив по формату','VAB').': '.single_tag_title('',false).'/'.get_post_format():(is_author()?esc_html__('Архив Автора','VAB').': '.get_the_author_meta('display_name',get_user_by('id',get_query_var('author'))->ID):esc_html__('Архив блога','VAB')))))))):get_bloginfo('name').' | '.get_bloginfo('description'))))));



    гуглите нужную выборку
    например проверить какой шаблон подключен wordpress (получите is_page_template() или get_page_template_slug( get_the_ID() ... )

    и так далее пока не получите, что нужно)))
    Ответ написан
    Комментировать
  • Как создать кастомный путь к странице по типу /page/custom?

    @nonconformiste Автор вопроса
    add_action('init', 'custom_rewrite');
    function custom_rewrite(){
    
      add_rewrite_rule( '^(page)/([^/]*)/?', 'index.php?pagename=$matches[1]&id=$matches[2]', 'top' );
      add_filter( 'query_vars', function( $vars ){
        $vars[] = 'id';
        return $vars;
      } );
      
    }
    Ответ написан
    Комментировать
  • Нужны ли препроцессоры CSS в 2022/2023?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    А нужны ли вообще препроцессоры в 2к22, уже почти 2к23 году

    Да.

    Переменные давно реализованы в нативном CSS

    Рили? Ниже переменная (она же map), можно пример в "нативном CSS"?
    $palette: (
    
      light: (
        1: "0deg 100% 99%",
        2: "0deg 100% 98%",
        3: "0deg 100% 96%",
      ),
      
      dark: (
        1: "0deg 0% 0%",
        2: "0deg 0% 0%",
        3: "0deg 0% 0%",
      ),
    
    );


    вложенность также

    Можно пример вложенности ниже в "нативном CSS" (не строкой `.car .car--model`, а именно, как "Nesting" в Sass)?
    .car {
      color: red;
      
      &--model {
        background: black;
        
        &-tesla {
          color: blue;
        }
      }
    }


    Какие преимущества остались у препроцессоров?

    Преодполжим, в переменную выше (она же map) залетает 99 палитр, разных оттенков, реализуйте в "нативном CSS" автоматическую генерацию css классов на основе этой переменной, чтобы получать на выходе примерно такое (по дороге, желательно вешать брекпоинты для дисплеев разных размеров и наследоваться от пользовательских цветовых тем, чтобы например, темное было на темном):
    .palette--light-1 { color: hsl(0deg 100% 99%) }
    .palette--light-2 { color: hsl(0deg 100% 98%) }
    // ...
    .palette--dark-3 { color: hsl(0deg 0% 0%) }
    Ответ написан
    Комментировать
  • Нужны ли препроцессоры CSS в 2022/2023?

    vabka
    @vabka
    Токсичный шарпист
    Переменные давно реализованы в нативном CSS

    В препроцессорах другие переменные.
    вложенность также.

    Разве?

    Вообще препроцессоры много удобного сахара добавляют. (https://sass-scss.ru/guide/)

    Если вы не видите нужных фич, значит вам не нужны.
    Ответ написан
    Комментировать
  • Как в Wordpress отключить корзину, чтобы посты удалялись сразу?

    godsplane
    @godsplane
    define( 'EMPTY_TRASH_DAYS', false ); // корзина отключена

    в wp-config.php

    Другие примеры:
    define( 'EMPTY_TRASH_DAYS', true );  // корзина включена. По умолчанию в WP
    define( 'EMPTY_TRASH_DAYS', 30 );    // корзина включена и записи в ней будут храниться 30 дней, после чего будут
    Ответ написан
    3 комментария
  • Какую область программирования выбрать PHP или Java?

    @rPman
    в данном случае язык определит направление дечятельности

    php - это безоговорочно веб и бакэнд, еще на нем можно (удобно) писать скрипты автоматизации и даже какую то аналитику по данным, т.е. если требуются не крупные проекты а множество временных и небольших - то плюсы php выходят вперед

    java - если смотреть на рынок, это в первую очередь мобильный гейминг android,.. не потому что язык такой, просто так звезды сложились.
    Если спросить меня, какой язык выбирать для создания крупного проекта с долгой поддержкой для бизнеса, java я бы выбрал ну очень в последний момент. Очень многословный язык, да код получается красивым, меньше мест где можно выстрелить себе в ногу и т.п... Из бонусов - кроссплатформенность (как железа так и ОС), уже не такая уж и уникальная опция.

    то о чем в вопросе не было спрошено:

    python - если тебе надо работать с данными, как опция - нейронные сети и т.п. (тоже вполне востребованный кейс, все сразу захотели в маркетинг играть или чего то автоматизировать и соптимизировать на работниках)

    javascript - занял очень интересную позицию в мире, благодаря nodejs он может быть как web бакендом, так и способом разработки браузерного интерфейса на стороне клиента, так и десктопные приложения (electron, чтоб его...) и даже как язык для unity игрового движка, т.е. получается язык получает статистический прирост с нескольких областей а не одной как остальные.
    У языка есть недостаток - как и у php (но он старается избавиться от этого) - свободная типизация, странная реализация ООП и другой синтаксический сахар типа асинхронности (это кстати его плюсы) увеличивают шансы выстрелить себе в ногу и усложняют поддержку проекта на долгосрок (там вообще много где проблем найти, как пример, берешь любой проект с гитхаба с датой последнего комита 3-4 года и пробуешь его обновить и поддержать, советую посмотреть что аудит безопасности npm будет вам писать).

    c# - надо ставить рядом с java (он и .net и создавался майкрософтом как главный конкурент), так же благодаря unity движку, захватывает часть статистики из геймдева. К сожалению, выбор языка гвоздями (да есть способы освободиться, но за все приходится платить и чего то лишаться) прибивает разрабатываемый продукт к майкрософтовской экосистеме, за который бизнесу приходится платить неплохой 'налог', поэтому если у тебя не unity то скорее всего ты либо поддерживаешь какое то легаси либо... ну мне нравится на .net формочки к базе данных делать, нигде такого легкого инструмента который дает ms visual studio и .net - нету, но, если прямо так хочется, там можно и на python.net писать, и на c++.net, и вообще какая разница какой язык программирования, в мире разработчика главенствуют фреймворки и среды разработки.
    Это я к чему - найти деньги с этими знаниями можно только по везению.

    Все остальные языки типа R, Rust, go и прочая экзотика - это издевательства над работодателями.. т.е. если ты найдешь по ним работу, это значит работодатель стал заложником не шибко умного системного аналитика (или его отсутствие/совмещение с разработчиком, который для самообразования решил приколоться), т.е. еще большее везение, делать ставку на это я бы не стал. Хотя для самообразования учить Rust или go очень даже неплохо, много открытых проектов пилят именно на go, вполне возможно, когда в мире количество разработчиков наберется до некоторой критической массы, это станет таким же мейнстримом как сейчас php или javascript.

    Так что еще раз - выбор языков программирования в порядке убывания оценки рекомендации (выше-вероятнее найти работу, кстати оценить уровень оплаты тут сложнее)
    php - и он теряет позиции, потому что SPA приложения захватывают мир
    javascript
    python
    - если не нужен вебдев - то это на первом месте
    java/c# (точнее .net)
    go

    если хочешь быть в вебе то php/javascript
    если хочешь в геймдев java/c#
    если хочешь датасайнс то python
    Ответ написан
  • Как автоматически удалять старые посты, при достижении определенного количество постов?

    develx
    @develx
    Web developer
    Как то так
    add_action(
        'publish_post',
        function() {
            $args = [
                'numberposts' => -1,
                'fields'      => 'ids',
            ];
    
            $posts = get_posts( $args );
    
            if ( $posts && count( $posts ) >= 100 ) {
                foreach ( $posts as $post ) {
                    wp_delete_post( $post, true );
                }
            }
        }
    );
    Ответ написан
    Комментировать
  • На чем сделать сайт для магазина техники?

    TTATPuOT
    @TTATPuOT
    https://code.patriotovsky.ru/
    Выбор технологического стека проекта основывается на знаниях команды, а не на том, что у Apple.
    Обратитесь к специалисту, если хотите дорого-богато. Если хотите дёшево и сердито - сделайте сами на конструкторе.
    Ответ написан
    Комментировать
  • Как это сверстать?

    @historydev
    Острая аллергия на анимешников
    Ответ написан
    Комментировать