Skip to content

Instantly share code, notes, and snippets.

@campusboy87
campusboy87 / change_rrs_posts_date.php
Last active May 4, 2018 06:24
Изменяет порядок вывода постов в ленте RSS (feed) через равные указанные промежутки времени
<?php
/**
* Изменяет порядок вывода постов в ленте через равные промежутки времени
*
* @param WP_Query $query
*/
function change_rrs_posts_date( $query ) {
// Период обновления постов в ленте - 1 день
$period = 24 * HOUR_IN_SECONDS;
@campusboy87
campusboy87 / MyBestMetaBoxes.php
Last active June 8, 2018 06:58
Пример создания метабокса с выбором компании в виде поля типа Повторитель (repeat).
<?php
new My_Best_Metaboxes;
class My_Best_Metaboxes {
public $post_type = 'post';
static $meta_key = 'company_address';
@campusboy87
campusboy87 / insert_parse_post.php
Created October 8, 2017 14:32
Публикует спаршенную запись c проверкой, есть ли подобная запись в БД по уникальному ключу
<?php
/**
* Проверяет наличие метаполя поста с заданным занчением
*
* @param string $url уникальное значение для поста, к примеру путь будет url спаршенной статьи
*
* @return bool
*/
function is_unique_meta_parse_post( $url ) {
@campusboy87
campusboy87 / setup_404_for_url_with_space.php
Last active October 17, 2017 10:26
Для страниц, которые имею пробел в ссылке, устанавливает ответ сервера 404.
<?php
add_action( 'pre_handle_404', function ( $false, $wp_query ) {
// если ярлык страницы содержит пробел...
$url = empty( $wp_query->query['pagename'] ) ? '' : $wp_query->query['pagename'];
if ( $url && strpos( $url, '%20' ) !== false ) {
$wp_query->set_404();
status_header( 404 );
nocache_headers();
@campusboy87
campusboy87 / cpt_service.php
Last active November 10, 2017 20:43
Регистрация CPT, удаление из ссылок имя CPT и переадресация при попытке запросить CPT по дефолтному адресу.
<?php
// Делает перенаправление, если открыть страницу CTP (кроме архивной) по дефолтному адресу.
if ( preg_match( '~/services/.+~', $_SERVER[ 'REQUEST_URI' ] ) ) {
$url = str_replace( '/services/', '/', $_SERVER[ 'REQUEST_URI' ] );
wp_redirect( $url, 301 );
exit();
}
add_filter( 'post_type_link', 'cpt_service_remove_slug', 10, 2 );
@campusboy87
campusboy87 / tpl-path.php
Last active May 29, 2018 10:47
Распределение шаблонов отображения контента в зависимости от раздела сайта. Данный файл создан, чтобы хранить шаблоны в стуктурированных папках и произвольными именами, а не в корне движка.
<?php
/**
* РАСПРЕДЕЛЕНИЕ ШАБЛОНОВ отображения контента в зависимости от раздела сайта
* Данный файл создан, чтобы хранить шаблоны в стуктурированных папках и произвольными именами, а не в корне движка
*
* @param string $template серверная ссылка к шаблону по умолчанию
*
* @return string $template серверная ссылка к пользовательскому шаблону
*/
function jrst_tpl_path( $template ) {
@campusboy87
campusboy87 / simple-ajax-form.php
Created December 1, 2017 19:18
Форма обратной связи. Пример на основе использования плагина AJAX Simply
<?php
/*
Plugin Name: Simple Ajax Form
Plugin URI: http://URI_Of_Page_Describing_Plugin_and_Updates
Description: A brief description of the Plugin.
Version: 1.0
Author: campusboy
Author https://wp-plus.ru
License: MIT
*/
@campusboy87
campusboy87 / contform.php
Created February 22, 2018 21:00
Форма обратной связи с загрузкой файла в WordPress на основе плагина Ajax Simply.
<?php
/**
* Работает на основе плагина Ajax Simply (без него работать не будет).
* Документация Ajax Simply - https://goo.gl/iFeLsZ
*/
// HTML верстка формы и стили
add_shortcode( 'form', 'contact_form_html' );
function contact_form_html() {
@campusboy87
campusboy87 / my_subpages.php
Created March 9, 2018 17:56
Шоткод для вывод дочерних страниц
<?php
add_shortcode( 'subpages', 'my_subpages' );
function my_subpages() {
$id = get_the_ID();
if ( false === $id ) {
return '';
}
@campusboy87
campusboy87 / replace_links_to_img.php
Created March 28, 2018 17:46
Replace links to img for WordPress post content. Sanks for @soulseekah https://codeseekah.com/