WordPress как на ладони

Ответьте на вопросы
    ...
  • Как извлечь список страниц из подомена (подпапки) wordpress на страницу основного сайта?

    Карта сайта стоит на основном домене и содержит список статических страниц. К этому списку хочу добавить список страниц из поддомена (в подпапке wordpress).

    Проблема в том что функция wp_list_pages не обнаруживает эти страницы (хотя страницы блога благополучно нашел на этом поддомене с помощью данной функции,только вот ссылки эти неправильные - начало основного домена,а конец - название страницы поддомена без указания самого поддомена.)

    Какая функция мне поможет? Куда копать?

    Ответить →
  • Footer в теме Appointment Blue

    Прошу помочь с разметкой футера. Тема Appointment. По умолчанию в sidebars.php (themes/appointment/functions/widgets/sidebars.php) авторами темы присвоено col-md-3 вместо нужных col-md-6 (необходимо две колонки). Если изменить в sidebars.php у
    родительской темы значение на col-md-6, то все становится на свои места, но хотелось бы само собой в дочерней все зарегистрировать, в связи с чем к Вам и обращаюсь. Тема Appointment Blue так сама является дочерней от темы Appointment.

    Часть кода sidebars.php родительской темы

    <?php    
    add_action( 'widgets_init', 'appointment_widgets_init');
    function appointment_widgets_init() {
    
    /*sidebar*/
    ....
    register_sidebar( array(
    		'name' => __( 'Footer widget area', 'appointment' ),
    		'id' => 'footer-widget-area',
    		'description' => __('Footer widget area', 'appointment' ),
    		'before_widget' => '<div class="col-md-3 col-sm-6 footer-widget-column">',
    		'after_widget' => '</div>',
    		'before_title' => '<h3 class="footer-widget-title">',
    		'after_title' => '</h3>',
    	) );
    ....

    Код footer.php дочерней темы

    <!-- Footer Section -->
    <?php 
    $appointment_options=theme_setup_data();
    $footer_setting = wp_parse_args(  get_option( 'appointment_options', array() ), $appointment_options );
    if ( is_active_sidebar( 'footer-widget-area' ) ) { ?>
    <div class="footer-section">
    	<div class="container">   
    		<div class="row footer-widget-section">
    			<?php  dynamic_sidebar( 'footer-widget-area' );  } ?> 
    			<div class="clearfix"></div>
    		</div>
    	</div>
    </div>
    <!-- /Footer Section -->
    <div class="clearfix"></div>
    <!-- Footer Copyright Section -->
    <div class="footer-copyright-section">
    	<div class="container">
    		<div class="row">
    			<div class="col-md-8">
    				<div class="footer-copyright">
    					<a href="http://wsdagency.com/">© Агентство по разработке веб-решений, 2017</a>
    				</div>
    			</div>
    				<?php if($footer_setting['footer_social_media_enabled'] == 0 ) { 
    				$footer_facebook = $footer_setting['footer_social_media_facebook_link'];
    				$footer_twitter = $footer_setting['footer_social_media_twitter_link'];
    				$footer_linkdin = $footer_setting['footer_social_media_linkedin_link'];
    				$footer_googleplus = $footer_setting['footer_social_media_googleplus_link'];
    				$footer_skype = $footer_setting['footer_social_media_skype_link'];
    				?>
    			<div class="col-md-4">
    			<ul class="footer-contact-social">
    					<?php if($footer_setting['footer_social_media_facebook_link']!='') { ?>
    					<li class="facebook"><a href="<?php echo esc_url($footer_facebook); ?>" <?php if($footer_setting['footer_facebook_media_enabled']==1){ echo "target='_blank'"; } ?> ><i class="fa fa-facebook"></i></a></li>
    					<?php } if($footer_setting['footer_social_media_twitter_link']!='') { ?>
    					<li class="twitter"><a href="<?php echo esc_url($footer_twitter); ?>" <?php if($footer_setting['footer_twitter_media_enabled']==1){ echo "target='_blank'"; } ?> ><i class="fa fa-twitter"></i></a></li>
    					<?php } if($footer_setting['footer_social_media_linkedin_link']!='') { ?>
    					<li class="linkedin"><a href="<?php echo esc_url($footer_linkdin); ?>" <?php if($footer_setting['footer_linkedin_media_enabled']==1){ echo "target='_blank'"; } ?> ><i class="fa fa-linkedin"></i></a></li>
    					<?php } if($footer_setting['footer_social_media_googleplus_link']!='') { ?>
    					<li class="googleplus"><a href="<?php echo esc_url($footer_googleplus); ?>" <?php if($footer_setting['footer_googleplus_media_enabled']==1){ echo "target='_blank'"; } ?> ><i class="fa fa-google-plus"></i></a></li>
    					<?php } if($footer_setting['footer_social_media_skype_link']!='') { ?>
    					<li class="skype"><a href="<?php echo esc_url($footer_skype); ?>" <?php if($footer_setting['footer_skype_media_enabled']==1){ echo "target='_blank'"; } ?> ><i class="fa fa-skype"></i></a></li>
    					<?php } ?>
    				</ul>
    			</div>
    			<?php } ?>
    		</div>
    	</div>
    </div>
    <!-- /Footer Copyright Section -->
    <!--Scroll To Top--> 
    <a href="#" class="hc_scrollup"><i class="fa fa-chevron-up"></i></a>
    <!--/Scroll To Top--> 
    <?php wp_footer(); ?>
    </body>
    </html>

    Код functions.php дочерней темы

    <?php
    
    add_action( 'wp_enqueue_scripts', 'appointment_blue_theme_css',999);
    function appointment_blue_theme_css() {
    	wp_enqueue_style( 'parent-style', get_template_directory_uri() . '/style.css' );
    	wp_enqueue_style( 'bootstrap-style', get_template_directory_uri() . '/css/bootstrap.css' );
    	wp_enqueue_style( 'theme-menu', get_template_directory_uri() . '/css/theme-menu.css' );
    	wp_enqueue_style( 'default-css', get_stylesheet_directory_uri()."/css/default.css" );
    	wp_enqueue_style( 'element-style', get_template_directory_uri() . '/css/element.css' );
    	wp_enqueue_style( 'media-responsive', get_template_directory_uri() . '/css/media-responsive.css');
    	wp_dequeue_style( 'appointment-default', get_template_directory_uri() .'/css/default.css');
    }
    
    /*
    	 * Let WordPress manage the document title.
    	 */
    	function appointment_blue_setup() {
       add_theme_support( 'title-tag' );
    }
    add_action( 'after_setup_theme', 'appointment_blue_setup' );
    ?>

    Спасибо

    Ответить →
  • [РЕШЕНО 99%] как запретить хотлинки на изображения с определенного сайта

    Теперь пустой реферер и реферер с выбраного сайта не сможет не посмотреть и не скачает по ссылке файл пока сам не зайдет на страницу ИСТОЧНИКА

    RewriteEngine On
    #RewriteCond %{REQUEST_FILENAME} .*\.(jpeg|jpg|gif|png)$
    RewriteCond %{REQUEST_URI} \.(jpeg|jpg|png|gif)$
    
    RewriteCond %{HTTP_REFERER} ^$ [NC,OR]
    
    RewriteCond %{HTTP_REFERER} ^http://(.+\.)?плохой\.club/  [NC,OR]
    RewriteCond %{HTTP_REFERER} ^http://(.+\.)?плохой\.com/  [NC,OR]
    RewriteCond %{HTTP_REFERER} ^http://(.+\.)?плохой\.online/  [NC,OR]
    RewriteCond %{HTTP_REFERER} ^http://(.+\.)?плохой\.xxx/ [NC]
    
    RewriteRule .* - [F]

    Все классно но не знаю как показать заглушку - вместо этого у конкурента выдает ошибку

    нужно условие

    если ( без рефера ИЛИ плохой сайт И картинка И полный урл И пытаемся скачать с урл на плохом сайте){
    	RewriteRule .*\.(jpeg|jpg|gif|bmp|png)$     [F]
    	// картинка на прямую не посмотреть - выбрасывает на 404 
    	// картинку не скачать
    	// КАК СДЕЛАТЬ ЧТОБ КАЧАЛАСЬ ЗАГЛУШКА 
    } иначе если (без рефера ИЛИ плохой сайт И картинка ){
    	RewriteRule .*\.(jpeg|jpg|gif|bmp|png)$ http://moi.site/zaglushka.tif 
    	// показать заглушку 
    }

    Была задача :

    1 вписать сайт в черный список
    2 чтоб при просмотре на нем отображались не картинки, а заглушка
    3 чтоб при прямом переходе\скачивании картинки "http://site.ru/kartinka.png/" срабатывал или редирект на главную, а если качает, то не изображение а заглушку?
    4 запретить доступ источникам без REFERER

    Знаю что такая реализация есть через REFERER, но как сделать не знаю, может кто сталкивался , ПОСОВЕТУЙТЕ !

    зашел как-то в яндекс посмотреть внешние ссылки, а там уже ~10 000 ссылок на кртинки из моих галерей, причем с просмотренном и скачиваниемю и все эти ссылки только с 3 сайтов. почему бы не забанить )))

    В будущем, сам не сделаю , буду заказывать, чтоб доступ к убитым\сжатым картинкам был у всех, а оригиналы чтоб мог скачивать только рефере моего сайта (думаю можно через кукисы реализовать). Уже такое видел , но как реализовать не знаю.

    Решил п.п 1 и 2 так

    RewriteEngine On
    RewriteCond %{HTTP_REFERER} ^http://(.+\.)?tttt\.club/ [NC,OR]
    RewriteCond %{HTTP_REFERER} ^http://(.+\.)?blogspot\.com/ [NC,OR]
    RewriteCond %{HTTP_REFERER} ^http://(.+\.)?livejournal\.com/ [NC]
    RewriteRule .*\.(jpeg|jpg|gif|bmp|png)$ http://i.imgur.com/qX4w7.gif [L]

    как решить 3 пункт
    по поводу пункта 4 — ссылки на загрузку выглядят таким образом

    http:// moikonkurent.club /?d=http%3A%2F%2F moisait.com %2Fwp-content%2Fuploads%2F2016%2F07%2Fkartinka.png

    вот есть правило я так понял если все совпадает то выполнится подмена, а как у себя это реализовать и чтоб менялся на пустой урл или изображение

    Ответить →
  • Оптимизация плагина Visual Composer

    Подскажите на что стоит обращать внимание при изучении чужого кода плагинов. Сейчас этот плагин в определенных условиях (стартовая страница сайта nameshore.com) генерирует 420 запросов в БД. Это было установлено благодаря плагину Query Monitor.

    TTFB для этой страницы составляет больше 20 сек и предположительно именно количество запросов этого плагина к БД является бутылочным горлышком. Я немного изучил эти запросы и увидел что большинство запросов ходят в несколько таблиц и достают практически все записи.

    Например: SELECT something FROM wp_table_something WHERE something.id = 3245;
    И так много раз с разными номерами id.

    Более того, эти запросы отправляются не через плагин, а через внутренние функции WP, вроде WP_Query. Таблица, в которую ходит плагин, состоит из пары тысяч записей.

    У меня есть гипотеза, что количество запросов можно значительно уменьшить, если одним запросом полностью загрузить таблицу в PHP, и заменить вызов WP_Query на другую функцию, которая будет делать выборку из памяти процесса php.

    Я до этого не работал с вордпресс и не знаю, как разобраться в коде плагина, там очень много папочек.

    Ответить →
  • Ссылка кнопка "ошибка-картинка не грузится"

    ищи решение, вероятно через плагин
    есть такой, но он старый и частично глючный https://wordpress.org/plugins/report-broken-links/
    пользователь просматривает галерею и каждая картинка открывается по отдельности - хочу чтоб в низу была кнопка с надписью

    《 уведомить о том что картинка не грузится 》

    когдато задавал вопрос оь отслеживании 404 - и тут мне посоветовали отличный плагин, ищу что то подобное , чтоб зашел на страничку с таблицей и там тебе ссылки на страницу с битой картинкой.

    мне более ничего не нужно , ни надписи, ни блока с запоонением, не хочу я перегружать посетителя , пусть даже случайно лупит по кнопке, проверить не составит труда -

    материала уже поднобралось и за всем не услежу, и пользователи уже начали помогать, вот и настала пора кнопочки))

    Ответить →
  • Комментарии
    <?php comments_template( '', true ); ?>

    взяв его с single.php и вставив в single-location.php он мне выводит не форму комментариев а кнопку вверх) ничего не пойму как такое может быть?

    Ответить →
Вопросы в комментариях
  • Marie: А как можно проверить срабатывала...

    А как можно проверить срабатывала ли уже эта функция с такими параметрами?
    То есть если wp_localize_script('main', 'user', $userParameters) уже один раз задал переменную user, то заново эту переменную не задавать.

    Ответить →
  • Алексей: так вышло, что админ сайта дал мне...

    так вышло, что админ сайта дал мне на редактирование только 1 файл - шаблон страницы темы, которая сама, в свою очередь, наследуется из ТвэнтиТен.
    я пишу по сути экспорт материалов сайта в спец. формат для моб. приложения, и весь алгоритм уже готов, осталось только прицепить хук на кнопку сохранить, но он не срабатывает.
    я так пишу в своём шаблоне страницы:
    add_action('save_post_scriptures', 'theBookIsUpdated', 10, 3);

    если я его позову в своём же файле, так:
    do_action('save_post_scriptures', $bk->ID, $bk, 0);
    то всё работает.

    но по нажатию кнопки в админке, ни в базу(мою, не сайта), ни в лог, ничего не пишется, т.е хук не срабатывает. я новичок в программировании для ВП, и тут какой-то нюанс, которого мне не хватает. знающие люди, помогите, подскажите, куда рыть, как можно проверить где затык?

    Ответить →
  • Tier-x: Можно ли сделать таб в табе?

    Можно ли сделать таб в табе?

    Ответить →
  • adrin: чет не работает ... ? wp 4.8.1 ...

    чет не работает ... ? wp 4.8.1

    add_filter( 'upload_mimes', 'my_myme_types' );
    
    function my_myme_types( $mime_types ) {
      $mime_types['ogv'] = 'video/ogg';     // Adding .ogv extension
    
      return $mime_types;
    }
    Ответить →
  • Flexo: ``` global $single_map_data;...
    global $single_map_data;
    $map_data_lat_max = $single_map_data['lat'];
    $map_data_lat_max = $map_data_lat_max + 0.2;
    	$arg_new = array(
    		  'posts_per_page' => -1,
    	  'post_type' => $cw_post_type,
    		  'meta_query'=>array(
    			array(
    				'key' => 'crb_location',
    				'carbon_field_property' => 'lng',
    				'compare' => '<',
    				'value' => $map_data_lat_max,
    			),
    		),
    		);
    Подключаю как плагин. Не работает вот этот код, кто может подсказать?
    Ответить →
  • lethalblo: Здравствуйте, поскольку этот код...

    Здравствуйте, поскольку этот код уже много раз усовершенствовался, возможно есть более старая версия которая работает с ВП версии 4,3? Просто я не люблю обновлять движок, без острой необходимости.

    Ответить →
Наставник Трепачёв Д.П., phphtml.net wordpress jino
Главная

13 неожиданностей в PHP, о которых знают не все

Казалось бы все знаешь, пишешь себе функции, используешь операторы и получаются у тебя крутые, быстрые и понятные конструкции кода, классы например. Но в какой-то момент внезапно нарываешься на ...

Таксономии в WordPress

Что такое таксономии в WordPress? Кто не знает и тем кто думает что знает о таксономиях все, будет полезно прочитать эту статью. Во всяком случае я постараюсь полностью разжевать что же скрывается ...

Как включить ссылки (закладки) в WordPress?

До версии 3.5 в WordPress был так называемый «блогролл», который еще называли «закладками» или «ссылками» - это записи, у которых было свое отдельное меню в админке, как сейчас оно есть у «записей» ...

Анонимные функции PHP в хуках WordPress

Анонимные PHP функции, также известные как замыкания (closures) или лямбда-функции, позволяют создавать функции не имеющие определенных имен. В WP они наиболее удобны в качестве значений ...

Разрешаем загрузку запрещенных типов файлов

WordPress не позволяет загружать в медиатеку что попало - защищается. Файлы нестандартных (не разрешенных) типов загрузить невозможно, потому что в WP есть список допустимых форматов файлов, т.е. ...

API настроек для сети сайтов (мультисайт)

В Wordpress есть специальное API, которое позволяет без шума и пыли создавать страницы настроек (опций), например настройки плагина или темы. Данные таких опций записываться в таблицу опций. API ...

Новинки от компании Wix в 2017 году

Создать сайт самому или заказать IT-компании? Такой вопрос задают себе все начинающие интернет-предприниматели. И если раньше создание страницы требовало обширных познаний в сфере IT, то сегодня ...

ThickBox API: модальное окно в админке

В WordPress есть такая штука как ThickBox - это API для создания модальных окон в админке. Такое окно, например, можно видеть при нажатии на кнопку «Детали» на странице плагинов. Пользоваться очень ...

Расширяемость Carbon Fields

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

Комплексные произвольные поля в Carbon Fields

Комплексное поле - это поле, состоящие из других полей, используемых в связке друг с другом. Данное поле в ряде случаев можно назвать повторяющимся полем или гибким контентом. Но лучшее представление ...

Сайтбилдер

https://ukit.com/ - сайтбилдер для создания бизнес-сайтов.

ukit.com

Конструктор сайтов uGuide.ru

Конструктор сайтов uGuide.ru

uguide.ru

Igrovye-avtomaty-na-dengi.co/casino-x

igrovye-avtomaty-na-dengi.co/casino-x - лучший игровой клуб!

igrovye-avtomaty-na-dengi.co