Skip to content

Instantly share code, notes, and snippets.

@campusboy87
campusboy87 / make_plain_text.php
Last active September 12, 2019 07:33
Преобразуент контент записи в plain text
<?php
/**
* Plugin Name: Преобразуент контент записи в plain text
*/
add_action( 'admin_menu', function () {
add_management_page(
'Форматирование записи',
'Форматирование записи',
'manage_options',
@campusboy87
campusboy87 / get_posts_relevant_title.php
Created September 8, 2019 15:31
Ищет посты, у которых в заголовке содержится указанная строка.
<?php
/**
* Ищет посты, у которых в заголовке содержится указанная строка.
*
* @param string $title
*
* @return array
*/
function get_posts_relevant_title( $title ) {
global $wpdb;
@campusboy87
campusboy87 / dividing_the_menu_in_half.php
Created July 18, 2019 10:17
Деление WordPress меню пополам
<?php
add_filter( 'wp_nav_menu_objects', function ( $menu_items, $args ) {
if ( $args->theme_location !== 'menu-1' ) {
return $menu_items;
}
static $average_cnt = null;
static $items = [];
if ( $average_cnt === null ) {
@campusboy87
campusboy87 / acf-dobavlenie-polej-k-opredelennoj-rubrike.php
Created July 7, 2019 07:43
ACF: Добавление полей к определенной рубрике
<?php
/**
* Статья https://wp-kama.ru/plugin/acf/dobavlenie-polej-k-opredelennoj-rubrike
* Видео https://youtu.be/mHJHnyPLf0M
*/
if ( is_admin() && ! wp_doing_ajax() ) {
add_filter( 'acf/location/rule_types', 'acf_location_rules_types', 999 );
@campusboy87
campusboy87 / acf_location_rule_match_post_category.php
Last active April 28, 2019 17:52
acf/location/rule_match/post_category
<?php
add_filter( 'acf/location/rule_match/post_category', 'acf_location_rules_match_category', 10, 3 );
function acf_location_rules_match_category( $match, $rule, $options ) {
$parent_slug = str_replace( 'category:', '', $rule['value'] );
$parent_term = get_category_by_slug( $parent_slug );
// Не нашлось указанной рубрики в условии по отображению
if ( ! $parent_term ) {
<?php
add_filter( 'the_posts', 'prefix_the_posts', 10, 2 );
/**
* @param array $posts
* @param WP_Query $wp_query
*
* @return array
*/
<?php
// Вывод меню в нужном месте шаблона (измените область top на свою)
wp_nav_menu( [
'theme_location' => 'top',
'container' => null,
'items_wrap' => '<ul class="menu-top">%3$s</ul>',
'walker' => new Maxim_Menu_Top(),
] );
<?php
function filter_wp_caption_text( $content ) {
return preg_replace(
'/<p[^>]+class="wp-caption-text"[^>]*>(.+)(?=<\/p>)/s',
'<div class="wp-caption-text">\1</div>',
$content
);
}
<?php
/**
* Загружает изображение в медиабиблиотеку по переданному url.
*
* @param string $url
* @param int $post_id
*
* @return int|WP_Error
*/
@campusboy87
campusboy87 / replace_thumbnail.php
Last active December 14, 2018 12:45
Если отсутствует миниатюра записи, то подменяет её другой миниатюрой с указанным ID.
<?php
function replace_thumbnail( $id, $object_id, $meta_key ) {
if ( '_thumbnail_id' === $meta_key && 'post' === get_post_type( $object_id ) ) {
remove_filter( 'get_post_metadata', __FUNCTION__ );
$default_id_img = 91;
$id = has_post_thumbnail( $object_id ) ? $id : $default_id_img;