Регулярні вирази
. - будь-який одиночний символ
[ ] - будь-який з них, діапазони
$ - кінець рядка
^ - початок рядка
\ - екранування
\d - будь-яку цифру
\D - все що завгодно, крім цифр
\s - пробіли
\S - все крім пробів
\w - літера
\W - все крім букв
\b - межа слова
\B - не межа слова
Квантифікація
n{4} - шукати n поспіль 4 рази
n{4,6} - шукати n від 4 до 6
* від нуля та вище
+ від 1 і вище
? - нуль або 1 раз
Підключаємо jQuery wordpress
add_action( 'wp_enqueue_scripts', 'my_scripts_method' );
function my_scripts_method() {
// отменяем зарегистрированный jQuery
// вместо "jquery-core", можно вписать "jquery", тогда будет отменен еще и jquery-migrate
wp_deregister_script( 'jquery-core' );
wp_register_script( 'jquery-core', '//ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js');
wp_enqueue_script( 'jquery' );
}
Вставка шортів коду в php
do_shortcode( );
Переміщуємо блоки за допомогою jquery
// .div1 // куда перемещаем
// .div2// что перемещаем
$('.div1').append($('.div2'));
Медіа запити css
/* monitors and laptops */
@media screen and (min-width: 1240px) {}
/* tablet */
@media screen and (min-width: 1024px) and (max-width: 1240px) {}
@media screen and (min-width: 768px) and (max-width: 1024px) {}
/* mobile */
@media screen and (max-width: 768px) {}
/* iPad in portrait & landscape */
@media only screen and (min-device-width : 768px) and (max-device-width : 1024px) {}
/* iPad in landscape */
@media only screen and (min-device-width : 768px) and (max-device-width : 1024px) and (orientation : landscape) {}
/* iPad in portrait */
@media only screen and (min-device-width : 768px) and (max-device-width : 1024px) and (orientation : portrait) {}
/* Retina iPad in portrait & landscape */
@media only screen and (min-device-width : 768px) and (max-device-width : 1024px) and (-webkit-min-device-pixel-ratio: 2) {}
/* Retina iPad in landscape */
@media only screen and (min-device-width : 768px) and (max-device-width : 1024px) and (orientation : landscape)
and (-webkit-min-device-pixel-ratio: 2) {}
/* Retina iPad in portrait */
@media only screen and (min-device-width : 768px) and (max-device-width : 1024px) and (orientation : portrait) and (-webkit-min-device-pixel-ratio: 2) {}
/* iPad 1 & 2 in portrait & landscape */
@media only screen and (min-device-width : 768px) and (max-device-width : 1024px) and (-webkit-min-device-pixel-ratio: 1){}
/* iPad 1 & 2 in landscape */
@media only screen and (min-device-width : 768px) and (max-device-width : 1024px) and (orientation : landscape) and (-webkit-min-device-pixel-ratio: 1) {}
/* iPad 1 & 2 in portrait */
@media only screen and (min-device-width : 768px) and (max-device-width : 1024px) and (orientation : portrait) and (-webkit-min-device-pixel-ratio: 1) {}
/* iPad mini in portrait & landscape */
@media only screen and (min-device-width : 768px) and (max-device-width : 1024px) and (-webkit-min-device-pixel-ratio: 1) {}
/* iPad mini in landscape */
@media only screen and (min-device-width : 768px) and (max-device-width : 1024px) and (orientation : landscape) and (-webkit-min-device-pixel-ratio: 1) {}
/* iPad mini in portrait */
@media only screen and (min-device-width : 768px) and (max-device-width : 1024px) and (orientation : portrait) and (-webkit-min-device-pixel-ratio: 1) {}
/* iPhone 5 in portrait & landscape */
@media only screen and (min-device-width : 320px) and (max-device-width : 568px) {}
/* iPhone 5 in landscape */
@media only screen and (min-device-width : 320px) and (max-device-width : 568px) and (orientation : landscape) {}
/* iPhone 5 in portrait */
@media only screen and (min-device-width : 320px) and (max-device-width : 568px) and (orientation : portrait) {}
/* iPhone 2G-4S in portrait & landscape */
@media only screen and (min-device-width : 320px) and (max-device-width : 480px) {}
/* iPhone 2G-4S in landscape */
@media only screen and (min-device-width : 320px) and (max-device-width : 480px) and (orientation : landscape) {}
/* iPhone 2G-4S in portrait */
@media only screen and (min-device-width : 320px) and (max-device-width : 480px) and (orientation : portrait) {}
Ширина блоку
var widhfix = $('#main').width();
$(".fixtop").css("width",widhfix);
$(window).resize(function(){
var widhfix = $('#main').width();
$(".fixtop-action").css("width",widhfix);
});
Заміна id
це спрацює лише для першого зустрінутого елемента з id "old_id", // інші елементи з таким id будуть проігноровані. $('#old_id').attr('id, 'new_id');
Вставка довільних полів woocommerce
add_action( 'woocommerce_before_add_to_cart_form', 'art_get_text_field_before_add_card' );
function art_get_text_field_before_add_card() {
global $post;
echo get_post_meta($post->ID, 'catalog_turbin_automobil', true);
}
Видалити слеш в кінці url
RewriteRule (.+)/$ /$1 [L,R=301]
Додаємо слеш в кінці url
RewriteCond %{REQUEST_URI} !/$
RewriteCond %{REQUEST_URI} !\.
RewriteRule ^(.*) %{REQUEST_URI}/ [R=301,L]
Якщо є великі літери в url ( вставити вгору сторінки)
if ( $_SERVER['REQUEST_URI'] != strtolower( $_SERVER['REQUEST_URI']) ) {
header('Location: http://'.$_SERVER['HTTP_HOST'] .
strtolower($_SERVER['REQUEST_URI']), true, 301);
exit();
}
ALT ДЛЯ ЗОБРАЖЕННЯ ТОВАРУ У WOOCOMMERCE
add_filter('wp_get_attachment_image_attributes', 'change_attachement_image_attributes', 20, 2);
function change_attachement_image_attributes( $attr, $attachment ){
// Get post parent
$parent = get_post_field( 'post_parent', $attachment);
// Get post type to check if it's product
$type = get_post_field( 'post_type', $parent);
if( $type != 'product' ){
return $attr;
}
/// Get title
$title = get_post_field( 'post_title', $parent);
$attr['alt'] = $title;
$attr['title'] = $title;
return $attr;
}
Виведення значень із кастомних полів
$field_key = "field_5b79806a93e16"; $field = get_field_object($field_key); if( $field ) {
echo 'Any';
foreach( $field['choices'] as $k => $v ) { echo '' . $v . ''; }
echo ''; }
Шорткод для contact form 7
function castom_cf7_func() {
//code
return 'ура все получилось!':
}
wpcf7_add_form_tag('castom_function', 'castom_cf7_func');
//castom_cf7_func - название функции
//castom_function - название шорткода [castom_function]
Центруємо блок по горизонталі та вертикалі
.class {
width: 50%;
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
max-height: 100%;
max-width: 100%;
}
Для движка Wordpress видаляємо слєш скінці url
add_filter('user_trailingslashit', 'no_page_slash', 70, 2);
function no_page_slash( $string, $type ){
global $wp_rewrite;
if( $type == 'page' && $wp_rewrite->using_permalinks() && $wp_rewrite->use_trailing_slashes )
$string = untrailingslashit($string);
return $string;
}
Додаємо метатеги wp
function castom_type_header_metadata() {
return '';
}
add_action( 'wp_head', 'castom_type_header_metadata' );
Перевірка на тип товару woocommerce
/*
simple -Простий товар
grouped - Згрупований товар
external - Зовнішній/Партнерський товар
variable - Варіативний
*/
$_product = wc_get_product( get_the_ID() );
if( $_product->is_type( 'variable' ) ) {
} else {
// do stuff for everything else
}
Висновок довільних полів таксономії acf
$term = get_queried_object(); // Сюди потрапить поточна таксономія
// vars
$image = get_field('image', $term);
$color = get_field('color', $term);
?>
//відключаємо теги для wc
function unregister_taxonomy_post_tag(){
register_taxonomy('product-tag', array());
}
add_action('init', 'unregister_taxonomy_post_tag');
// Заменяем теги strong
add_filter( 'the_content', 'filter_function_name_11' ); //в овновному контенті
add_filter( 'the_excerpt', 'filter_function_name_11' ); //у короткому описі контенту
add_filter('woocommerce_short_description', 'filter_function_name_11', 10, 1); // у короткому описі товару
function filter_function_name_11( $content ) {
// preg_replace('/<strong(.*)>(.*)<\/strong>/', '$2', $content)
return preg_replace('/<strong(.*)>(.*)<\/strong>/', '$2', $content) ;
}
Змінює ціну у woocommerce
add_filter('woocommerce_product_get_price', 'change_price', 99, 2 );
add_filter('woocommerce_product_get_regular_price', 'change_price', 99, 2 );
add_filter( 'woocommerce_price_filter_widget_min_amount', 'change_price', 99, 2);
add_filter( 'woocommerce_price_filter_widget_max_amount', 'change_price', 99, 2);
// Variable
add_filter('woocommerce_product_variation_get_regular_price', 'change_price', 99, 2 );
add_filter('woocommerce_product_variation_get_price', 'change_price', 99, 2 );
// Variations
add_filter('woocommerce_variation_prices_price', 'change_price', 99, 3 );
add_filter('woocommerce_variation_prices_regular_price', 'change_price', 99, 3 );
add_filter( 'woocommerce_variation_prices_sale_price', 'change_price', 99, 3 );
Додати кнопки ± для товару в категорії WC
/**
* Override loop template and show quantities next to add to cart buttons
*/
add_filter( 'woocommerce_loop_add_to_cart_link', 'quantity_inputs_for_woocommerce_loop_add_to_cart_link', 10, 2 );
function quantity_inputs_for_woocommerce_loop_add_to_cart_link( $html, $product ) {
if ( $product && $product->is_type( 'simple' ) && $product->is_purchasable() && $product->is_in_stock() && ! $product->is_sold_individually() ) {
$html .= woocommerce_quantity_input( array(), $product, false );
$html .= '' . esc_html( $product->add_to_cart_text() ) . '';
}
return $html;
}
Вимкнути canonical rel prev next wordpress wpseo
add_action( 'wp', function(){
if (!is_product()) {
add_filter( 'wpseo_next_rel_link', '__return_false' );
add_filter( 'wpseo_prev_rel_link', '__return_false' );
add_filter( 'wpseo_canonical', '__return_false' );
}
});
Регулярка для укр номерів телефонів (inputMask)
^\+38\(0[2-9]\d{1}\)\d{3}-\d{2}-\d{2}
Залишити кілька знаків після коми
function truncate_number( $number, $precision = 2) {
// Zero causes issues, and no need to truncate
if ( 0 == (int)$number ) {
return $number;
}
$negative = $number / abs($number);
$number = abs($number);
$precision = pow(10, $precision);
return floor( $number * $precision ) / $precision * $negative;
}
# BEGIN WP Hide & Security Enhancer
RewriteEngine On
RewriteBase /
#WriteCheckString:1602091627_41738
RewriteRule .* - [E=HTTP_MOD_REWRITE:On]
RewriteRule ^eptyxept/(.+) /wp-content/themes/{ваша тема}d/$1 [L,QSA]
RewriteRule ^ashoaxoo/(.+) /wp-content/plugins/$1 [L,QSA]
RewriteRule ^oortoagy/(.+) /wp-includes/$1 [L,QSA]
RewriteRule ^ejoanset/(.+) /wp-content/uploads/$1 [L,QSA]
RewriteRule ^hoarykoa.php /wp-comments-post.php [L,QSA]
RewriteRule ^igatoaks/(.+) /wp-content/$1 [L,QSA]
# END WP Hide & Security Enhancer
# BEGIN WordPress
# The directives (lines) between "BEGIN WordPress" and "END WordPress" are
# dynamically generated, and should only be modified via WordPress filters.
# Any changes to the directives between these markers will be overwritten.
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress
Закріпити шапку
fixedHeader = ()=>{
this.fix =()=>{
// if(window.innerWidth < 768){ // тільки на моб пристроях
window.onscroll = function() {myFunction()};
var header = document.querySelector(".page__hgroup"); // .page__hgroup - класс шапки
var sticky = header.offsetTop;
function myFunction() {
if (window.pageYOffset > sticky) {
header.classList.add("sticky");
document.querySelector('body').classList.add("sticky")
document.body.style.marginTop = header.offsetHeight + 'px'
} else {
header.classList.remove("sticky");
document.querySelector('body').classList.remove("sticky")
document.body.style.marginTop = '';
}
}
// }
}
this.fix()
}
fixedHeader()
Csv to Array php
$csv = 'https://docs.google.com/spreadsheets/d/e/b/pub?output=csv';
$data = array_map('str_getcsv', file($csv));
$keys = array_shift($data);
$newArray = array_map(function($values) use ($keys){
return array_combine($keys, $values);
}, $data);
$newArray // - результат
dd_action( 'after_setup_theme', 'prefix_remove_unnecessary_tags' );
function prefix_remove_unnecessary_tags(){
// REMOVE WP EMOJI
remove_action('wp_head', 'print_emoji_detection_script', 7);
remove_action('wp_print_styles', 'print_emoji_styles');
remove_action( 'admin_print_scripts', 'print_emoji_detection_script' );
remove_action( 'admin_print_styles', 'print_emoji_styles' );
// remove all tags from header
remove_action( 'wp_head', 'rsd_link' );
remove_action( 'wp_head', 'wp_generator' );
remove_action( 'wp_head', 'feed_links', 2 );
remove_action( 'wp_head', 'index_rel_link' );
remove_action( 'wp_head', 'wlwmanifest_link' );
remove_action( 'wp_head', 'feed_links_extra', 3 );
remove_action( 'wp_head', 'start_post_rel_link', 10, 0 );
remove_action( 'wp_head', 'parent_post_rel_link', 10, 0 );
remove_action( 'wp_head', 'adjacent_posts_rel_link', 10, 0 );
remove_action( 'wp_head', 'wp_shortlink_wp_head', 10, 0 );
remove_action( 'wp_head', 'adjacent_posts_rel_link_wp_head', 10, 0 );
remove_action( 'wp_head', 'rest_output_link_wp_head' );
remove_action( 'wp_head', 'wp_oembed_add_discovery_links' );
remove_action( 'template_redirect', 'rest_output_link_header', 11 );
// language
add_filter('multilingualpress.hreflang_type', '__return_false');
}