Архив автора: admin

Что такое: Действие (Action)

Функция Action в коде WordPress, который выполняется в определенных точках по всему ядру WordPress. В коде WordPress есть множество предопределенных действий или крючки, которые позволяют разработчикам добавлять свой собственный код в этих точках. Они являются частью того, что делает WordPress настолько расширяемым и большинство плагинов зависят от действий их функционирования.

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

function copyright_my_notice() {

   echo "Авторское право. Все права защищены";

}

add_action('wp_footer','copyright_my_notice');

 

В данном примере copyright_my_notice это действие устанавливает хук в wp_footer. Функция copyright_my_notice будет выполняться всякий раз, когда хук wp_footer() появится в коде темы WordPress.

WordPress предлагает список доступных действий в Plugin API.

Дополнительная литература



2016-10-09T10:56:11
Глоссарий

Django. Отображение фотографий на HTML странице (часть 11)

Добавим теперь фотографии домов, для этого расширим модель. В файле models.py напишем:

photo = models.ImageField(«фотография», upload_to=»houses/photos», default=»», blank=True)

Мы создали поле house_photo, в котором будет храниться ссылка на изображение дома.

default =»» — значение по умолчанию, это пустая строка.
blank=True – говорит, что можно добавлять дом без фотографии.
upload_to=»houses/photos» — путь где будут храниться фотографии

Нажмем Ctrl+Alt+R – создадим миграцию

makemigrations houses
migrate houses

Возможно вы получите следующие ошибки

ERRORS:
houses.House.house_photo: (fields.E210) Cannot use ImageField because Pillow is not installed.
HINT: Get Pillow at https://pypi.python.org/pypi/Pillow or run command:
«pip install Pillow».

Для выполнения следующей миграции без ошибок, нам нужно установить библиотеку Pillow.
Pillow — это библиотека для работы с изображениями.

Выполним:

pip install Pillow

И снова мы можем увидеть следующие ошибки:

pip install pillow failed with error code 1
error for pip install Pillow on Ubuntu virtualenv
failed building wheel for Pillow

Для их исправления нужно выполнить следующие команды

sudo apt-get install python-dev
sudo apt-get install python3-dev
sudo apt-get install libjpeg8-dev zlib1g-dev

Теперь снова выполним команду и в этот раз должно все получиться:

pip install Pillow

Collecting Pillow
Using cached Pillow-3.2.0.zip
Building wheels for collected packages: Pillow
Running setup.py bdist_wheel for Pillow … done
Stored in directory: /home/vlad/.cache/pip/wheels/88/2d/ce/3ff4ae4e2b8600d1bde1cbde5dfcc6d8770222c38348fe9139
Successfully built Pillow
Installing collected packages: Pillow
Successfully installed Pillow-3.2.0

Снова выполним миграцию:

python manage.py makemigrations houses
python manage.py migrate houses

Теперь перейдем в settings.py и включим поддержку медиафайлов. Тоесть файлы, которые будем добавлять мы или наши клиенты через сайт.

Добавим переменную MEDIA_ROOT, которой присвоим «media»

os.path.join(BASE_DIR, «media»)

, то есть мы будем хранить файлы в папке «media», которая будет находится в папке проекта BASE_DIR

Также добавим переменную MEDIA_URL, которой присвоим строку «/media/»

MEDIA_URL — это адрес по которому пользователь сможет получить доступ к нашим медиа файлам.

Теперь перейдем в файл urls.py и импортируем в него функцию static

from django.conf.urls.static import static

А также импортируем настройки проекта:

from django.conf import settings

После, к urlpatterns прибавим функцию static()
Первым аргументом укажем settings.MEDIA_URL, а вторым именованный document_root=settings.MEDIA_ROOT

urlpatterns = [] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

Переходим в админку, выбираем дом бюджет, теперь мы видим, что появилось новое поле Фотография, которое в отличии от других полей не выделено жирным, то есть оно не обязательно для заполнения. Добавим фото и нажмем сохранить. Фотография загрузится на сервер в папку houses/photos

Теперь в папке проекта должна появится папка media, внутри которой houses и photos, в соответствии со структурой upload_to

Выведем теперь фотографию на сайт. Откроем шаблон houses_list.html и напишем:

if, затем нажмем TAB, чтобы быстро создать инструкцию

{% if house.house_photo %}

{% endif %}

А в теле инструкции напишем:

img, затем нажмем TAB, чтобы быстро создать конструкцию

В скобках {{ }} добавим house.house_photo.url и house.house_name

Разберем код:

Мы добавили условие, если у дома есть фотография house.house_photo, то подставить в атрибут src=»» ссылку на неё {{ house.house_photo.url }}, а в атрибут alt=»» имя дома {{ house.house_name }}

Откроем сайт и посмотрим, фотография Бюджетного дома — теперь выводится.

Отлично!

Автор: Vladimir Semenovich

6 инфографик, чтобы помочь вам лучше понять WordPress

Как и большинство веб — дизайнеров, я не пошел через школьное образование, чтобы узнать, как использовать WordPress. Процесс обучения прошел через чтение книг, пытаясь понять учебники, изучая темы великих дизайнеров, и ,наконец, проверка некоторых изображений, диаграмм и инфографиков, которые визуально дали мне лучшее понимание WordPress. Ниже приведены некоторые инфографики, которые дадут вам лучшее понимание WordPress.

1. Структура базы данных WordPress

Если вы создаете темы в WordPress, редактируете или создаете плагины, вам может понадобиться для взаимодействия с базой данных и найти необходимую информацию. Эта инфографика поможет вам понять это гораздо быстрее, показывая структуру и отношения между таблицами.

Структура базы данных WordPress

2. WP_Query против query_posts () против get_posts ()

Несмотря на использование Comic Sans, эта блок-схема может быть очень полезным, чтобы решить, как показывать посты в цикле или вне в WordPress.

ps:  query_posts () не должно больше использоваться, но WP_Query еще можно использовать. Проверьте это обсуждение на Stack бирже для получения дополнительной информации. Чтобы сделать его коротким: Используйте , pre_get_posts чтобы изменить ваш основной запрос. Используйте отдельный WP_Query объект (метод 2) для вторичных контуров на страницах шаблона.

WP_Query против query_posts () против get_posts ()

3. Основная структура темы в WordPress

Визуально пытаемся объяснить основную структуру темы WordPress для начинающих.

Основная структура темы в WordPress

4. Анатомия темы WordPress

Созданный известным консультантом WordPress Йоаст, это инфографика идет глубже в объяснении анатомии темы WordPress.

anatomiya-temy-wordpress

5. Иерархия шаблонов WordPress

Имея хорошее понимание иерархии шаблонов WordPress может помочь вам сэкономить хорошее количество времени, по крайней мере, этот график сделал это для меня. Я выбрал версию, созданную WPtuts + , потому что это казалось более привлекательным визуально для меня, но WordPress Кодекс содержит более подробную и актуальную версию этого графика .

Иерархия шаблонов WordPress

6. Цикл в WordPress

Если вы не программист, цикл может быть одним из самых сложных вещей, что есть в WordPress. Эта диаграмма поможет вам понять, как работает цикл.

Цикл в WordPress



2016-10-08T13:42:17
Витрина

Как создать тему WordPress?

Этот учебник покажет вам , как создать простую тему WordPress. При создании собственной темы, вы можете использовать бесплатные темы из репозитория WordPress.

Как создать основную тему WordPress?

Для того, чтобы начать строить свою тему, сначала нужно создать вложенную папку в каталоге wp-content/themes в вашей папке WordPress. Для этого урока мы будем называть папку «tutorial_themes». Имя папки должно соответствовать названию темы, которую вы хотите создать. Для этого вы можете использовать любой FTP — клиент или менеджер файлов в вашей хост-панели.

Перед тем, как приступить к созданию темы, вы должны решить, как будет выглядеть макет вашего сайта. На этом уроке мы будем строить тему WordPress, которая состоит из заголовка, боковой панели, область содержимого и нижнего колонтитула, как показано ниже:

Для этого мы должны создать следующие файлы в директории tutorial_themes:

  • header.php — Этот файл будет содержать код для раздела заголовка темы;
  • index.php — Это главный файл для темы. Он будет содержать код для главной области и указывать, где будут включены другие файлы;
  • sidebar.php — Этот файл будет содержать информацию о боковой панели;
  • footer.php — Этот файл будет обрабатывать нижний коллонтитул;
  • style.css — Этот файл будет обрабатывать стиль вашей новой темы;

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

Теперь давайте рассмотрим каждый файл и что он должен содержать:

Файл header.php

В этом файле вы должны добавить следующий код:

<html>

<head>

<title>Учебник по темам</title>

<link rel="stylesheet" href="<?php bloginfo('stylesheet_url'); ?>">

</head>

<body>

<div id="wrapper">

<div id="header">

<h1>ЗАГОЛОВОК</h1>

</div>

 

В основном, это простой HTML-код с одной строкой, содержащей код PHP и стандартную функцию WordPress. В этом файле вы можете указать мета-теги, такие как заголовок вашего сайта, мета-описания и ключевые слова для вашей страницы.

Сразу же после титула мы добавим

<link rel="stylesheet" href="<?php bloginfo('stylesheet_url'); ?>">

 

он сообщает WordPress, чтобы загрузить файл style.css. Он будет обрабатывать стиль вашего сайта.

<?php bloginfo('stylesheet_url'); ?>

 

это функция WordPress, которая на самом деле загружает файл таблицы стилей.

Затем мы добавили в начало «div» с классом обертку, которая будет основной контейнер сайта. Мы установили класс для этого, чтобы мы могли изменить его с помощью файла style.css.

После этого мы добавили простое название ЗАГОЛОВОК, завернутое в «div» с классом «header», который будет позже указан в файле таблицы стилей.

Файл index.php

<?php get_header(); ?>

<div id="main">

<div id="content">

<h1>Главная облать</h1>

<?php if (have_posts()) : while (have_posts()) : the_post(); ?>

<h1><?php the_title(); ?></h1>

<h4>Опубликован <?php the_time('F jS, Y') ?></h4>

<p><?php the_content(__('(далее...)')); ?></p>

<hr> <?php endwhile; else: ?>

<p><?php _e('Извините, нет постов по вашим запросам.'); ?></p><?php endif; ?>

</div>

<?php get_sidebar(); ?>

</div>

<div id="delimiter">

</div>

<?php get_footer(); ?>

 

Код в этом файле начинается с

<?php get_header(); ?>

 

который будет включать файл header.php и код в нем на главной странице. Он использует внутреннюю функцию WordPress, чтобы сделать это. Мы объясним это подробно позже в этом руководстве. Тогда мы поместили текст Основная область, чтобы указать, какой раздел вашей темы отображается в этой области.

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

Далее, мы включаем файл sidebar.php с этой линии

<?php get_sidebar(); ?>

 

В этом файле вы можете отобразить Ваш пост, категории, архивы и т.д.

После этой линии, мы вставляем пустой «div», который будет разделять основной областью и боковую панель от нижнего колонтитула.

Наконец, мы добавляем одну последнюю строку

<?php get_footer(); ?>

 

который будет включать файл footer.php на вашей странице.

Файл sidebar.php

В sidebar.php мы добавим следующий код:

<div id="sidebar">

<h2 ><?php _e('Категории'); ?></h2>

<ul >

<?php wp_list_cats('sort_column=name&optioncount=1&hierarchical=0'); ?>

</ul>

<h2 ><?php _e('Архивы'); ?></h2>

<ul >

<?php wp_get_archives('type=monthly'); ?>

</ul>

</div>

 

В этом файле мы используем внутренние функции WordPress для отображения категории и архивы постов. Функция возвращает WordPress их как элементы списка, поэтому мы обернули фактические функции в не отсортированных списках (теги <ul>).

Файл footer.php

Вы должны добавить эти строки в файл footer.php:

<div id="footer">

<h1>ПОДВАЛ</h1>

</div>

</div>

</body>

</html>

 

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

Файл style.css

Добавьте следующие строки в файл style.css:

body { text-align: center; }

#wrapper { display: block; border: 1px #a1a2a2 solid; width:90%; margin:0px auto; }

#header { border: 1px #a2a2a2 solid; }

#content { width: 74%; border: 2px #a1a2a2 solid; float: left; }

#sidebar { width: 24%; border: 2px #a1a2a2 solid; float: right; }

#delimiter { clear: both; }

#footer { border: 1px #a1a2a2 solid; }

.title { font-size: 12pt; font-family: verdana; font-weight: bold; }

 

Этот простой файл CSS устанавливает основный дизайн вашей темы. Эти строки устанавливают фон вашей страницы и окружены основные части вашего сайта границами для удобства.

Как создать тему WordPress?

Как мы уже упоминали, внутренние функции WordPress часто используются в коде темы. Вы можете взглянуть на полный Справочник по функциям на официальном сайте WordPress для получения дополнительной информации о каждой функции.

С этого момента вы можете изменить файл CSS, добавлять изображения, анимацию и другое содержание к вашей теме, чтобы достичь какого вы хотите внешнего вида для вашего блога!



2016-10-08T10:37:29
Темы WordPress

Что такое: Массив (Array)

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

WordPress написан на языке программирования PHP и, следовательно, как WordPress пользователь вы можете встретить их во время работы над темами WordPress или плагинов или просто смотря на основной код в WordPress. В PHP функция array() используется для их создания. Есть три типа, которые могут быть созданы в PHP:

  • Indexed — используйте цифровые клавиши для доступа к значениям
  • Associative — использовать текстовые или строковые ключи для доступа к значениям
  • Multidimensional — содержат более одного массива

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

$fruit1 = "coconut";

$fruit2 = "orange";

$fruit3 = "melon";

 

Это может быстро получить очень некрасиво. Лучшим решением было бы поместить их в массив, как ниже:

$fruit = array("coconut", "orange", "melon");


 

Теперь вы можете делать такие вещи, как использование встроенных функций массива для выполнения операций над данными. Например, count() скажет вам, сколько элементов в массиве. $fruit[2] будет равен ‘melon’ (массивы начинаются с нуля).

Пример в WordPress :

Переменная $args представляет собой массив, сохраняет ряд аргументов. Они затем передаются в функцию wp_list_categories.

<?php

$args = array(

  'taxonomy'     => 'category',

  'orderby'      => 'name',

  'show_count'   => 0,

  'pad_counts'   => 0,

  'hierarchical' => 1,

  'title_li'     => 'Categories'

);

?>



<ul>

<?php wp_list_categories( $args ); ?>

</ul>

 



2016-10-08T09:28:53
Глоссарий

Django. Наполнение страницы данными (часть 10)

Наполним страницу данными, вернемся в views.py и импортируем модуль house

from .models import House

А затем внутри представления напишем:

houses = House.objects.all()

House.objects.all() — этой строкой мы создаем запрос к нашей базе данных с помощью ORM.
objects.all() — запрос на получение всех объектов

Теперь в переменной houses содержаться все дома, которые мы добавили через админку. Мы снова обошлись без SQL запросов к базе данных, что очень упрощает разработку.

Передадим дома в наш шаблон, для этого добавим в функцию render(), третий параметр словарь, в котором напишем {“houses”: houses}, теперь в нашем шаблоне доступны созданные нами объекты.

Перейдем в html файл, т.к. мы связали шаблон с представлениями через render(), то теперь можно кликнуть по значку напротив объявления функции.

Теперь в houses_list.html нам нужно вывести дома через переменную hoses, которую мы передали в шаблон. Для этого нужно воспользоваться языком шаблонов Django.
Язык шаблонов Django — это такой упрощенный язык, с помощью которого можно обращаться к python объектам внутри html файла, а также реализовывать простейшую логику вроде циклов и условий.

Напишем for и нажмем TAB, Pycharm создаст для нас конструкцию for и поместит в нее объект houses

Конструкция for заключается в фигурные скобки с % и имеет окончание {% endfor %}
Внутри конструкции нам доступен объект house, который отвечает за один единственный дом.

Напишем:

div>h2+div*2

и нажмем TAB, чтобы Pycharm быстро создал несколько HTML тэгов.

Добавим в двойных фигурных скобках:

{{ house.name }}
{{ house.price }}
{{ house.description }}

{% … %} — если фигурные скобки с % отвечают за синтаксические конструкции, как например в for, то с помощью двойных фигурных скобок {{ … }}, мы можем обращаться к Python объектам, в нашем случае к объекту house и сейчас мы выводим данные по нашему объекту в HTML.

Откроем сайт и обновим страницу

Отлично!

Автор: Vladimir Semenovich