Loading...
X

Как отредактировать макет форума wpForo


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

За первые три месяца форума Яндекс проявил благосклонность и стал давать посетителей:

Google жлобит, но всё равно понемногу тоже присылает пользователей:

Общая посещаемость:

Скажу по секрету — я не ожидал такого роста за счёт поисковых систем. Зато посетители с тематических сайтов-доноров, напротив, меня абсолютно разочаровали: мало заходят и практически ничего не пишут… Поисковый трафик рулит, всё остальное — тлен.

Посещаемость на форуме растёт бодренько, наполнять контентом его легко и, в качестве бонуса, уже даже пройдена модерация в AdSense. Причём с модерацией вообще получилось странно: я подавал этот сайт на модерацию сразу после создания и он был отклонён с формулировкой, что «Сайт нарушает условия партнёрской программы AdSense». Меня это расстроило и я даже перестал писать новые посты на какое-то время. Само-собой, убрал код AdSense с форума. А потом, когда все уже работающие с AdSense сайты прошли модерацию (или одобрение), я внезапно увидел свой форум в списке одобренных сайтов среди прочих… Бывает же…

В общем, поскольку всё так неплохо складывается, я решил поглубже изучить плагин форума wpForo. А именно — разобраться с макетами и их редактированием. Забегая вперёд скажу: как и многое другое в этом плагине, редактирование вёрстки логически выверено и продумано.

Макеты wpForo

Главными двумя преимуществами и уникальными особенностями wpForo являются:

  • макеты форума
  • гибридные форумы

У wpForo есть встроенная система одновременной поддержки разных макетов. Говоря простым языком: из одного сайта вы можете сделать одновременно и форум и раздел «Вопросов-Ответов».

Вы можете настроить различные разделы вашего форума на использование различных макетов и форум приобретёт гибридный вид. В настоящее время стандартная тема «Classic» поставляется с тремя макетами:

  • Extended Layout (расширенный макет): классический макет форума с уникальной функцией предварительного показа информации, размещённый на следующем уровне вложенности. Вы можете видеть последние темы каждого форума в списке форумов, а при переходе в список тем вы можете видеть последние посты.
  • Simplified Layout (упрощённый макет): лёгкий, современный и красивый макет форума с темами и аватарами авторов в списках форумов и топиков.
  • Question and Answer Layout (макет вопросов и ответов): полноценная доска обсуждений «Вопросов-Ответов» для профессиональной поддержки пользователей и сообществ наподобие Stack Overflow. Отличная платформа, где пользователи могут задавать вопросы и писать ответы. Зарегистрированные пользователи могут участвовать в голосовании (присвоении рейтинга) вопросам и ответам.

Как переключить макеты wpForo. Как из wpForo сделать сайт «Вопросов и Ответов»

Чтобы изменить макет форума, в панели управления WordPress перейдите в Форумы, там выберите подраздел который также называется Форумы, нажмите иконку карандаша для редактирования свойств форума и уже там вы найдёте настройку Макет категории:

Если у вас уже есть форум и вы хотите создать раздел вопросов-ответов, то создайте ещё один форум и измените его макет.

То, что внутри «форума», называется категориями и их внешний вид зависит от того «форума», в котором они находятся.

Где хранятся макеты wpForo

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

  • тонкой подстройки внешнего вида
  • размещения рекламы и других вставок

Примечание: у wpForo есть платный плагин для управления рекламой

Примечание 2: если вы работаете с Google AdSense, то автоматизированные объявления очень хорошо размещаются в очень удачные места. То есть рекомендую попробовать автоматизированные объявления, и если они вас не устроят, то уже можете перейти к редактированию кода и ручной вставке объявлений.

Все макеты расположены в папке wp-content/plugins/wpforo/wpf-themes/classic/layouts/, там они в подпапках 1, 2 и 3.

То есть:

  • Расширенный макет находится в подпапке wp-content/plugins/wpforo/wpf-themes/classic/layouts/1
  • Упрощённый макет находится в подпапке wp-content/plugins/wpforo/wpf-themes/classic/layouts/2
  • Макет вопросов и ответов находится в подпапке wp-content/plugins/wpforo/wpf-themes/classic/layouts/3

Очевидно, что если они там лежат, то их можно редактировать. НО: в случае обновления плагина все сделанные изменения будут потеряны!!!


Разработчики это предусмотрели, поэтому файлы из этой папки имеют более низкий приоритет чем ваши пользовательские файлы. Чтобы это работало, нужно файл, который вы хотите изменить, переместить в подпапку wp-content/themes/ваша_тема/wpforo

Допустим, я хочу отредактировать файл wp-content/plugins/wpforo/wpf-themes/classic/layouts/1/topic.php, тогда мне нужно его скопировать в папку wp-content/themes/ваша_тема/wpforo/layouts/1/topic.php

Аналогично можно скопировать всё содержимое папки wp-content/plugins/wpforo/wpf-themes/classic/layouts/1/ целиком в папку wp-content/themes/ваша_тема/wpforo/layouts/1/

В результате, файлы из папки wp-content/themes/ваша_тема/wpforo/layouts/1/ будут иметь главный приоритет и именно они будут использоваться при создании внешнего вида вашего форума. Исходные файлы из папки wp-content/plugins/wpforo/wpf-themes/classic/layouts/1/ удалять не надо.

В случае обновления плагина wpForo, также будут обновлены и файлы в папке wp-content/plugins/wpforo/wpf-themes/classic/layouts/1/, но на внешний вид вашего сайта это не окажет влияния, поскольку по-прежнему будут использоваться файлы из папки wp-content/themes/ваша_тема/wpforo/layouts/1/, которые при обновлении не трогаются.

На первый взгляд это может показаться чуть запутанным, но на самом деле это не так! Это очень логически правильно, и когда вы вникните, то сами поймёте, как это удобно. Не редактируйте файлы макетов в ядре плагина — они будут перезаписаны во время процесса обновления и все ваши кастомизации будут потеряны.

wpForo: Пример вставки рекламы в первое сообщение темы

В папке wp-content/themes/ваша_тема/wpforo/layouts/1/ окажется всего 3 файла:

  • forum.php — макет вывода форумов
  • post.php — макет вывода отдельных сообщений
  • topic.php — макет вывода списков тем

Далее я покажу примерную последовательность действий, когда нам нужно сделать «врезку» в исходный код плагина или файла WordPress.

Если нам нужно сделать изменения (добавить код объявления) в выводимые сообщения, значит нам нужно редактировать файл post.php.

Вставляя маркеры (любые уникальные строки, которые вы без труда найдёте на странице сайта) найдите то место кода, которое отвечает за вывод сообщения.

К примеру, в случае файла post.php это:

	            <div class="wpforo-post-content">
					<?php wpforo_content($post); ?>
	            </div>

Таким образом, можно вставить код объявления так:

	            <div class="wpforo-post-content">
					А ЗДЕСЬ РЕКЛАМА!
					<?php wpforo_content($post); ?>
	            </div>

Но в результате реклама будет в каждом сообщении ветки форума — это точно перебор.

Лучше, например, добавить банер только в самое первое сообщение. Как это сделать?

При анализе исходного кода, перед выводом сообщения видим такую строку:

<?php 
	
	foreach($posts as $key => $post) : ?>

Можно догадаться, что $key — это что-то вроде номера сообщения (поста). Это можно проверить

<?php 
	
	foreach($posts as $key => $post) : ?>

<?php echo $key; ?>

Да, подтверждено, $key — это номер поста от 0 и далее. То есть у первого поста номер 0, у второго номер 1, у третьего номер 2 и так далее.

В результате после рассматриваемой строки мы делаем врезку:

		<?php
		if ($key == 0) {
		    $ads1 = 'ЗДЕСЬ КОД ОБЪЯВЛЕНИЯ';
		}
		else {
		    $ads1 = '';
		}
		?>

Думаю, суть кода примерно ясна — если $key равно 0, то переменной $ads1 присваивается значение в котором HTML код объявления. Если $key имеет любое другое, отличное от 0 значение, то $ads1 становится равной пустой строке.

Соответственно, перед выводом сообщения мы делаем ещё одну врезку:

	            <div class="wpforo-post-content">
	                <?php echo $ads1; ?>
					<?php wpforo_content($post); ?>
	            </div>

То есть перед КАЖДЫМ сообщением будет выводиться значение $ads1, но только в для первого сообщения $ads1 будет содержать рекламный блок, а во всех других случаях, фактически, будет выводиться пустая строка — говоря проще, ничего (кроме самого сообщения) выводиться не будет.

Фрагменты кода, демонстрирующие логику (в каком порядке что идёт):

……………………………
……………………………
……………………………
……………………………
<?php 
	
	foreach($posts as $key => $post) : ?>
		
		<?php $member = wpforo_member($post); $post_url = wpforo_post($post['postid'],'url'); ?>
		
		<?php
		if ($key == 0) {
		    $ads1 = 'ЗДЕСЬ КОД ОБЪЯВЛЕНИЯ';
		}
		else {
		    $ads1 = '';
		}
		?>
		
……………………………
……………………………
……………………………
……………………………
	            <div class="wpforo-post-content">
	                <?php echo $ads1; ?>
					<?php wpforo_content($post); ?>
	            </div>
……………………………
……………………………
……………………………
……………………………

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

Начните с автоматизированных объявлений

Опять повторю (так как сам я в конечном счёте решил не использовать вставленные вручную блоки рекламы) — автоматизированные объявления очень хорошо «чувствуют» структуру страниц wpForo и, на мой взгляд, очень удачно «разбрасывают» объявления.

Потеря сделанных изменений после обновления темы

Проверка временем показала, что при обновлении плагина сделанные изменения тем действительно сохраняются. Но выяснилось другая особенность — при обновлении темы WordPress, в поддиректорию которой мы копируем файлы wpForo, эти файлы теряются. То есть они удаляются при оформлении текущей темы, в результате сделанные изменения исчезают.

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

Рекомендуется вам:


Leave Your Observation

Ваш e-mail не будет опубликован. Обязательные поля помечены *

wp-puzzle.com logo

Scroll Up