Ответы пользователя по тегу WordPress
  • Как отредактировать шаблон вывода встроенного контента (oEmbed)?

    AlexGrRu
    @AlexGrRu Автор вопроса
    И так, вот ответ.

    до версии WordPess 4.5:
    весь код храниться в двух файлах wp-includes/embed-template.php и wp-includes/embed.php Соответственно если необходимо отредактировать шаблон вывода (не стили) то идем в файл embed-template.php находим нужный нам код и редактируем.
    Немного почитать можно здесь

    с версии WordPress 4.5:
    Разработчики внесли изменения, и теперь вместо двух файлов их пять
    • embed.php
    • embed-404.php
    • embed-content.php
    • header-embed.php
    • footer-embed.php

    От этого стало только удобнее, если честно. Так же, на сколько я понял, можно теперь встраивать в тему собственные стили тега embed создав одноименные файлы в директории своей темы. Подробнее можно здесь прочесть
    Ответ написан
    Комментировать
  • Как подключить word к wordpress для публикования статей?

    Открываете Microsoft Word, затем пункт Меню и кнопочку Создать (1). В строке поиска наберите "блог" (2), результатом будет Запись в блоге (3) - нажимаем ее. Появится окно с описанием (4), читаем, нажимаем Создать (5).
    2e1ae8388f8e46cdb61212ae1a507116.png

    Появится окно Регистрация учетной записи блога, нажимаем кнопку Зарегистрировать
    db0bb532b75c402584e3b0e74943de93.png

    В окне создания учетной записи блога выбираем нашего поставщика услуг - WordPress и нажимаем Далее
    b93a67a8991b40c9bdac5c5bba2a1941.png

    Далее в окне Создание учетной записи WordPress вводим данные сайта и логин/пароль автора.
    a8627d3069804c15b0d84036cd6bba3d.png
    так же, рекомендую сразу настроить параметры изображений, нажав соответствующую кнопку.

    Насчет безопасности в общем - да, это еще одна лазейка для "врагов", об этом даже сам Word предупреждает. Но вы можете вашему автору ограничить права на столько, что он сможет лишь публикации делать, при этом, даже если его взломают, у вас будет возможность быстро отключить аккаунт. И уже точно будете знать с кого спросить ))
    cec1ba4c2ca248c993816d7792a9f21d.png
    Ответ написан
    8 комментариев
  • Как загружать яндекс карту с адресом из доп.поля?

    Вот есть код прямого геокодирования в песочнице яндекс ссылка

    Необходимо его совсем немного доработать, что бы из вашего произвольного поля данные подставлялись в параметр ymaps.geocode файла direct_geocode.js

    как передать переменную (в вашем случае адрес из произвольного поля) в файл js описано тут

    UPD 17:15
    самому стало интересно, как это реализовать, и вот результат

    В файлы где выводим карту пишем:
    <?php
    $adress = '<?php echo $adress[0];?>';       // получаем значение переменной
    ?>

    тут $adress - изменяете на свою переменную

    Далее пишем следующее
    <script>
          //Определяется переменная, которая будет доступна для 
          // всех JavaScript, подключаемых на данной странице
          var js_ad = '<?php echo $adress; ?>';
     </script>


    Подключаем скрипт карт
    <script src="//api-maps.yandex.ru/2.1/?lang=ru_RU" type="text/javascript"></script>


    Подключаем наш файл со скриптом direct_geocode.js
    в файле direct_geocode.js происходит обращение к переменной js_ad.

    <script src="<?php echo get_template_directory_uri() ?>/page-templates/js/direct_geocode.js" type="text/javascript"></script>

    не забудьте поменять путь до вашего файла

    Делаем вывод самой карты в нужном нам месте на странице
    <div id="map" style="width:100%; height:200px;"></div>


    А вот код нашего скрипта direct_geocode.js
    ymaps.ready(init);
    
    function init() {
        var myMap = new ymaps.Map('map', {
            center: [55.753994, 37.622093],    // поменяйте местоположение центрирования карты, можно воспользоваться сервисом https://constructor.maps.yandex.ru/location-tool/
            zoom: 9
        });
    
        // Поиск координат центра значения нашей переменной js_ad.
        ymaps.geocode(js_ad, {
            /**
             * Опции запроса
             * @see https://api.yandex.ru/maps/doc/jsapi/2.1/ref/reference/geocode.xml
             */
            // Сортировка результатов от центра окна карты.
            // boundedBy: myMap.getBounds(),
            // strictBounds: true,
            // Вместе с опцией boundedBy будет искать строго внутри области, указанной в boundedBy.
            // Если нужен только один результат, экономим трафик пользователей.
            results: 1
        }).then(function (res) {
                // Выбираем первый результат геокодирования.
                var firstGeoObject = res.geoObjects.get(0),
                    // Координаты геообъекта.
                    coords = firstGeoObject.geometry.getCoordinates(),
                    // Область видимости геообъекта.
                    bounds = firstGeoObject.properties.get('boundedBy');
    
                // Добавляем первый найденный геообъект на карту.
                myMap.geoObjects.add(firstGeoObject);
                // Масштабируем карту на область видимости геообъекта.
                myMap.setBounds(bounds, {
                    // Проверяем наличие тайлов на данном масштабе.
                    checkZoomRange: true
                });
    
                /**
                 * Все данные в виде javascript-объекта.
                 */
                console.log('Все данные геообъекта: ', firstGeoObject.properties.getAll());
                /**
                 * Метаданные запроса и ответа геокодера.
                 * @see https://api.yandex.ru/maps/doc/geocoder/desc/reference/GeocoderResponseMetaData.xml
                 */
                console.log('Метаданные ответа геокодера: ', res.metaData);
                /**
                 * Метаданные геокодера, возвращаемые для найденного объекта.
                 * @see https://api.yandex.ru/maps/doc/geocoder/desc/reference/GeocoderMetaData.xml
                 */
                console.log('Метаданные геокодера: ', firstGeoObject.properties.get('metaDataProperty.GeocoderMetaData'));
                /**
                 * Точность ответа (precision) возвращается только для домов.
                 * @see https://api.yandex.ru/maps/doc/geocoder/desc/reference/precision.xml
                 */
                console.log('precision', firstGeoObject.properties.get('metaDataProperty.GeocoderMetaData.precision'));
                /**
                 * Тип найденного объекта (kind).
                 * @see https://api.yandex.ru/maps/doc/geocoder/desc/reference/kind.xml
                 */
                console.log('Тип геообъекта: %s', firstGeoObject.properties.get('metaDataProperty.GeocoderMetaData.kind'));
                console.log('Название объекта: %s', firstGeoObject.properties.get('name'));
                console.log('Описание объекта: %s', firstGeoObject.properties.get('description'));
                console.log('Полное описание объекта: %s', firstGeoObject.properties.get('text'));
    
                /**
                 * Если нужно добавить по найденным геокодером координатам метку со своими стилями и контентом балуна, создаем новую метку по координатам найденной и добавляем ее на карту вместо найденной.
                 */
                /**
                 var myPlacemark = new ymaps.Placemark(coords, {
                 iconContent: 'моя метка',
                 balloonContent: 'Содержимое балуна <strong>моей метки</strong>'
                 }, {
                 preset: 'islands#violetStretchyIcon'
                 });
    
                 myMap.geoObjects.add(myPlacemark);
                 */
            });
    }


    Собственно на этом все :)

    UPD на основе комментария:
    тут пишешь так
    <?php
    $address = get_the_title(); // подставляет текст из тайтла
    ?>

    а тут так
    <script>
          //Определяется переменная, которая будет доступна для 
          // всех JavaScript, подключаемых на данной странице. ПОДСТАВЛЯЕМ город
          var js_ad = 'Казань, <?php echo $adress; ?>';
     </script>
    Ответ написан
  • Почему wordpress может не загружать картинки?

    Проверь настройки домена, WordPress работаем в режиме PHP как CGI. Возможно стоит PHP как модуль Apache при таком варианте CMS не может записать картинки на сервер из-за отсутствия прав.

    Так же можешь почитать тут (англ.)
    Ответ написан
    Комментировать
  • Как отсортировать медиафайлы Wordpress?

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

    1. выводим шорткодом на странице/записи:
    [gallery order="ASC" orderby="ID" type="rectangular" link="file" size="medium"]

    order - метод сортировки
    orderby - по какому параметру сортируем
    type - тип вывода изображений
    link - какую имеет ссылку изображение
    size - какого размера выводим изображения


    2. выводим изображения в шаблоне:
    <?php echo do_shortcode('[gallery option1="value1"]'); ?>

    опции вписываем какие надо, как выше указано

    3. выводим изображения в цикле:
    <?php
        $gallery_shortcode = '[gallery ]';
        print apply_filters( 'the_content', $gallery_shortcode );
     ?>

    так же можем добавлять опции к выводу галереи

    В последствии все прикрепленные изображения странице будут добавляться автоматически.
    Информация взята из Кодекса

    P.S. Английский язык и Кодекс WordPress наше все :)
    Ответ написан
    1 комментарий
  • Как загрузить множество изображений в запись(пост)?

    Множественная загрузка изображений поддерживает wordpress по умолчанию нажав на кнопку добавить Медиафайл.

    Для вставки в запись (страницу) сразу нескольких изображений при открытом окне медиафайлов нажимайте на изображения с ударжанной клавишей SHIFt, будут появляться галочки, после нажимайте кнопку Вставить в запись

    fd9e1c3a8e2c44bebf40df20153897ab.PNG
    Ответ написан