Задать вопрос
  • Как сделать свою функцию вывода виджетов в wordpress?

    Роман Якушев: Ну теперь задача хоть понятна. Ок, в таком случае вам надо совершенно другим путем идти. Вам необходимо взять код этих 2х виджетов и сделать из них 1 виджет. Виджет - это класс, который наследует WP_Widget (подробнее тут). Почему из 2х надо сделать 1? Потому что концепция вордпресовских виджетов в том, что 1 виджет это 1 один изолированный объет, и сделать то, что вы хотите на выводе с 2мя разными виджетами таки действительно непросто, если они динамические. Посему, объединив 2 виджета в один, вы сможете внутри ему модифицировать код, по сути, поставить рядом 2 разных функционала, в соответствующих блоках, а сверху вывести 2 тайтла, именно так как вам надо. Только в этом случае это будет не тайтл виджета, а значения 2х текстовых инпутов, которые будут в форме настроек виджета. Понимаете в каком направлении работать или нужна дополнительная помощь?
  • Как сделать свою функцию вывода виджетов в wordpress?

    Роман Якушев: уже теплее. Что вы видите в массиве каждого виджета, полученном из wp_options? И, наконец, главный вопрос - а почему именно виджеты, разве вы не можете получить те же товары WC только другим способом и не заморачиваться с виджетами?
  • Как сделать свою функцию вывода виджетов в wordpress?

    Роман Якушев: Еще есть опция 'sidebars_widgets', которая хранит настройки сайдбаров и их виджеты. В том числе "неактивные" виджеты. Не совсем понимаю, зачем вам брать кусок кода из стандартной функции? Возьмите ваши 2 виджета из опций, и возьмите из них отдельно тайтлы, отдельно контент. По поводу проверок - все еще непонятна конкретная ситуация в которой надо проверять (и что проверять). Что у вас за виджеты? Что они делают, что выводят? И что именно и на каких страницах надо проверять?
  • Как сделать свою функцию вывода виджетов в wordpress?

    Роман Якушев: ну потому я и написал - используйте доку по get_option + PHPMyAdmin - это позволяет видеть сразу что конкретно вам надо получить из базы. По поводу "когда" - а как вам надо определить? Что за условие? И о каких циклах вы говорите?
  • Как сделать свою функцию вывода виджетов в wordpress?

    Роман Якушев: 1. Официальная документация - это community-managed проект, который далеко не полный. Это раз. Два - я предлагаю использовать функцию get_option четко по ее назначению - для получения значения опции из таблицы БД. Что тут не по документации? И три - есть задача, есть решение. 2. Внимательно читайте. Я только что сделал у себя:
    <p>Getting widget data from wp_options table:</p>
    <?php
    $widget = get_option('widget_qtranslate');
    var_dump($widget);
    ?>

    и получил на выходе:
    array (size=3)
      1 => 
        array (size=0)
          empty
      '_multiwidget' => int 1
      3 => 
        array (size=4)
          'title' => string '' (length=0)
          'hide-title' => boolean true
          'type' => string 'text' (length=4)
          'widget-css' => string '.qtranxs_widget ul { margin: 0; }
    .qtranxs_widget ul li
    {
    list-style-type: none; /* use "initial" or other to enable bullets */
    margin: 0 0 10px; /* adjust spacing between items */
    }' (length=187)

    Если у вас false - читайте доку по функции get_option. False означает, что опции с таким названием НЕ СУЩЕСТВУЕТ.
  • Тема для wordpress?

    Роман Якушев: В ядро лезть не надо, я вам в том вопросе отвечаю как можно сделать через прямой доступ к wp_options. И если вы уперлись рогом в "вывод отделен от ядра", то расслабтесь. MVC паттерна в WordPress нет и пока не планируется. Причин много, главная - обратная совместимость. Что касается всего остального - все прекрасно делается без модификации ядра.
  • Тема для wordpress?

    Роман Якушев: Можно и виджеты переписать, несколько способов есть. Только в вашем конкретном случае виджет - не самое оптимальное решение. Кодекс и гугл это хорошо, но самый главный источник информации - это КОД ЯДРА. Открываете и смотрите. Там, кстати, отличная inline-документаци.
  • Как сделать свою функцию вывода виджетов в wordpress?

    Роман Якушев: 1. В чем странность? 2. Откройте PHPMyAdmin и посмотрите в таблице wp_options, есть ли такой виджет и что в нем.
  • Какой плагин слайдера использовать для wordpress с php вызовом в шаблоне и шаблонизатором?

    Роман Якушев: ну если вы все делаете руками, то и поля делайте руками. Изображения храните в wp_options, загружайте их обычным аплоад-полем, обрабатывайте с помощью wp_handle_upload. Соответственно, либо делаете поле multiple file upload, повторяющееся поле upload. Если не хотите городить вагон кастомного кода вручную - используйте плагин, их для этого и создавали. ACF, Pods, и им подобные.

    Что касается "где хранить". Если у вас есть пост - подобные данные хранятся в postmeta. Если поста нет, тогда есть таблица wp_options.
  • Тема для wordpress?

    Роман Якушев: Писать кастомный код - это не костыли, а абсолютно нормальный и адекватный способ РАСШИРЯТЬ или МОДИФИЦИРОВАТЬ возможности платформы, если стандартных фич вам не достаточно. Костыли и говнокод - это практика конкретного человека с кривыми руками и недостаточным уровнем знаний. Чтобы не писать костыли, нужно изучать ядро платформы (любой, с которой вы начали работать), понимать как все устроено внутри. А чтобы это осознать и освоить, необходим хотя бы средний уровень знания PHP/MySQL.

    По поводу того бага - он долго не фиксился, так как это не баг WordPress, это некорректная настройка БД сервера у некоторых хостеров, как я и написал выше - EDGE CASE (крайний, редкий, нестандартный случай). WP (как и любая другая платформа) не может физически предусмотреть все возможные настройки говнохостеров. По ошибке в логе сразу видно в чем проблема - некорректный Collation. А вот то, что в случае возникновения такой редкой ошибки не срабатывают проверки - это уже по части WP, но багом называть это некорректно. Просто нашелся edge case, для которого пришлось добавить дополнительные checks. Подобные ситуации встречаются везде.
  • Тема для wordpress?

    Роман Якушев: Роман, не делайте громких заявлений, не понимая о чем говорите. Любая платформа (и друпал в том числе) имеет свои особенности. Я на WP 10 лет работаю, за это время были сделаны не только "бложики", но и крупные платформы, SaaS-решения и тому подобное. И ни одна из названных вами "проблем" никогда не была проблемой. Ваш баг в мультисайте - edge case, при чем связан с одним и тем же нюансом, про который уже годами твердят - кодировка должна быть UTF-8 и Collate, никаких cp-1251 и прочей средневековой ереси. У меня ни разу с ним не было проблем, даже учитывая то, что есть весьма сложные SaaS-решения на multisite, взглянув на которые вы никогда в жизни не подумаете, что это WordPress. Остальные ваши вопросы - это не "проблемы", и непонимание вами архитектуры или недостаточный уровень владения PHP (вместе с незнанием архитектуры WP) чтобы писать свой кастомный код.
  • Тема для wordpress?

    Зачем TimThumb? Так, чисто для информации, его больше разработчики не развивают и не поддерживают. Он уже deprecated. Не говоря уж о том, что это самая дырявая компонента во вселенной.
  • Как в wordpress в теме добавить выбор нескольких изображений?

    Роман Якушев: а о каком шаблоне вы говорите, том который тема (theme) или который таки шаблон (template). Если второе - какой именно шаблон?
  • Как вывести все метки?

    Хотя {$variable} - вполне нормально для PHP, это не соответствует WordPress Coding Standards. Если пишете код для WordPress - используйте конкатенацию или printf/sprintf, а строки заключайте в одинарные кавычки. HTML-атрибуты должны быть в двойных кавычках.
  • Как сократить время загрузки страницы на wordpress?

    Tlito: нормально он работает, к тому же там можно выбрать место откуда тестировать - для наших краев лучше всего Амстердам. Не смотрите только на конечную цифру, смотрите ПОЧЕМУ она такая - что сколько времени занимает. И оптимизируйте каждую составляющую, которая в этом нуждается. Pingdom дает кучу подсказок и инструкций по этому поводу.
  • Как сделать разные single.php для AJAX вывода через шорткод, и остальных страниц?

    crazyASD: да, и в следующий раз не отвечайте таким образом на свой же вопрос, а то вы себе рейтинг поднимаете, а не тем, кто вам помог :)
  • Как вывести дополнительные поля из последних трех статей(или рандомно) на главную?

    VladimirZhid:
    1. Функция foreach() - это цикл, с помощью которого можно пройтись по каждому элементу массива, пошагово, по одному элементу за шаг. $posts_array as $post означает, что идем мы по массиву $posts_array, и на каждом шаге, его текущий элемент ставим в переменную $post, чтобы иметь возможность работать с ее содержимым (в данном случае это объект WP_Post).
    2. WP_Query - это класс WordPress, который используется для получения поста/постов из базы данных и выдачи их в виде объекта/объектов. Это очень мощный инструмент, на котором построена вся работа с постами в WordPress, но в вашем случае проще использовать get_posts, так как вам не нужны и глобальные переменные, ни весь тот вагон дополнительных свойств и методов, которые возвращает WP_Query.
    3. По большому счету, вместо get_posts можно было бы использовать кастомный SQL запрос через $wpdb (еще один полезный класс), и получить только ID постов, этого будет достаточно. Но это более продвинутая техника, вам пока лучше не погружаться в этом направлении - мозг взорвется :)