Архив метки: wordpress

Выводим красивое сообщение пользователю после отправки сообщения из Contact Form 7

Начиная с версии 7.5, события нужно теперь отлавливать через DOM. Например вывод сообщения об успешной отправке письма можно оформить так:

document.addEventListener( 'wpcf7mailsent', function( event ) {
$.fancybox(
	'<h2>Уведомление</h2><strong>'+event.detail.apiResponse.message+' </strong><br/><br/>',
	{
    	    'autoDimensions'	: false,
    	    'padding'		: 30,
    	    'margin': 30,
	    'width'         		: 'auto',
	    'height'        		: 'auto',
	    'transitionIn'		: 'fade',
	    'transitionOut'		: 'fade'
	}
    );
}, false );

Изменяем заголовок wp_head на отдельных страницах wordpress

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

<?php
/*
Plugin Name: Изменение title для части страниц
Plugin URI: https://грибовы.рф
Description: Если видит что открыта страница с id=460,то меняет заголовок подставляя город из куков
Version: 1.0
Author: Грибов Павел
Author URI: https://грибовы.рф
*/

add_action('template_redirect', 'before_header', 0);
add_action('wp_head', 'after_header', 900);
function before_header (){
    ob_start('change_title_tag');
}
function change_title_tag($head) {
    if (isset($_COOKIE["city"])==true){    
	$head=str_replace("Интернет и телевидение в квартиру","Интернет и телевидение в квартиру ".$_COOKIE["city"],$head);
	$head=str_replace("Интернет и телевидение в дом","Интернет и телевидение в дом ".$_COOKIE["city"],$head);
    };
    return $head;
}
function after_header() {
    ob_end_flush();
}

?>

Меняем ширину темы twenty fourteen для WordPress

По непонятной причине разработчики темы twenty fourteen для WordPress решили что ширина экрана на современных экранах, ограничена размером в 1260 пикселей. Странно.. однако тема хорошая, а потому её можно чуть чуть «пофиксить».. Для этого нужно отредактировать style.css:

  • Найти все упоминания 1260px и заменить на 100%
  • Найти все вхождения max-width: 672px; и заменить на max-width: 100%;
  • Найти все вхождения max-width: 474px; и заменить на max-width: 80%;

Ежедневный скриншот на сайт 2

загруженноеВ предыдущей записи на эту тему была маленькая недоработка, а именно как оказывается wp-mail.php в wordpress не понимает вложенные файлы. Посему схему пришлось сделать чуть сложнее:

  • делаем скриншот
  • заливаем его по FTP на сайт
  • отсылаем письмо в html формате на «секретный ящик»
  • wordpress «смотрит» ящик и делает запись телом сообщения письма

Вот мой получившийся скрипт:

#!/bin/bash
name=`date +%x-%X-%N.png`
scrot /home/pavel/dealy/$name

echo "cd /public_html/xn--90acbu5aj5f.xn--p1ai/dealy/" > /home/pavel/dealy/ftp.sh
echo put /home/pavel/dealy/$name $name >> /home/pavel/dealy/ftp.sh
echo close >> /home/pavel/dealy/ftp.sh
echo quit >> /home/pavel/dealy/ftp.sh

cat /home/pavel/dealy/ftp.sh $name| lftp логин:пароль@ftp.u2397248.cp.regruhosting.ru

sendEmail -f почта@gmail.com -o message-content-type=html -o message-charset=utf-8 -t gribov.почта@mail.ru -u "Снимок экрана" -m "Ежедневный снимок экрана в 13.00<br><img src=http://xn--90acbu5aj5f.xn--p1ai/dealy/$name>"