Вопрос не относится к плагину wp-recall, но я надеюсь, что здесь также присутствуют люди, которые знают ответ на мой вопрос
Пишу свою тему основываясь на этой картинке:
После установки и активации плагинов "для входа и регистрации" (theme my login, wp-recall) автоматически создаются некоторые страницы на которых написан только сам шорткод ( например [theme-my-login] )
На этих страницах у меня почему то ничего нет - белый лист. Т.е. шорткоды не срабатывают. Установка плагинов на тему twentyfifteen показывает, что плагины рабочие и там шорткоды срабатывают и страницы появляющиеся после установки плагинов не пустые.
Очевидно проблема в моей теме. Белый лист я вижу как на локальном сервере так и на сервере хостинг-провайдера. В моей теме имеются следующие файлы: 404.php, category.php, footer.php, footer-home.php, functions.php, куча хидеров - для каждой страницы свой, home.php, index.php (пустой), куча файлов вида page-id.php, search.php, searchform.php, sidebar.php, single.php, single-post.php. Ну ещё файл стилей и скриншот. Вот код functions.php:
function load_scripts(){
wp_enqueue_style('style', get_bloginfo('template_url').'/style.css' );
wp_register_script('main', get_bloginfo('template_url').'/js/main.js',false,'26092015' ,true);
wp_enqueue_script('main');
}
add_action('wp_enqueue_scripts', 'load_scripts');
add_theme_support( 'post-thumbnails' );
register_nav_menu('nav_menu', 'Навигационное шапка-меню');
/*if (function_exists('register_sidebar') )
register_sidebar(array(
'before_widget' => '',
'after_widget' => '',
'before_title' => '',
'after_title' => '',
));*/
if (!current_user_can('administrator')):
show_admin_bar(false);
endif;
register_sidebar(array(
'name' => 'Виджеты сайдбара1',
'id' => 'sidebar1',
'description' => 'для входа'
));
register_sidebar(array(
'name' => 'Виджеты сайдбара2',
'id' => 'sidebar2',
'description' => 'для регистрации'
));
register_sidebar(array(
'name' => 'Виджеты сайдбара3',
'id' => 'sidebar3',
'description' => 'для рубрик'
));
function mytheme_content_filter( $content ) {
// Do stuff to $content, which contains the_content()
// Then return it
return $content;
}
add_filter( 'the_content', 'mytheme_content_filter' );
add_action('phpmailer_init','send_smtp_email');
function send_smtp_email( $phpmailer ) {
// тут стандартный код настроек почты
}
if ( ! function_exists( 'get_current_page_url' ) ) {
function get_current_page_url() {
global $wp;
return add_query_arg( $_SERVER['QUERY_STRING'], '', home_url( $wp->request ) );
}
}
Otshelnik-Fm сказал(а)
Если гадать - я бы убрал или закомментировал этот участок:
function mytheme_content_filter( $content ) { // Do stuff to $content, which contains the_content() // Then return it return $content; } add_filter( 'the_content', 'mytheme_content_filter' );
Я убрал, но это не помогло. Проблема решается костылём: создаю страницу page-id.php, где id страницы, и в коде уже пишу
<?php echo do_shortcode("[wp-recall]"); ?>
Но мне честно говоря хотелось бы знать почему в моей теме не работают шорткоды, если их пихать в содержимое страницы
Otshelnik-Fm сказал(а)
Посмотреть бы от этой темы page.php
сам page.php отсутствует, но есть много файлов вида "page-id.php". Т.е. должен отрабатывать index.php (а он пуст)
ахахаха. Я вордпресс изучаю чуть больше месяца и поэтому привык что в нём всё каким то чудесным образом работает)))
Оказывается чтобы написанный шорткод в содержимом страницы отработал необходимо иметь php файл для вывода этой страницы и там должен выводится контент. Например вот так:
<?php if (have_posts()) : while (have_posts()) : the_post(); ?> <?php the_content(); ?> <?php endwhile; ?> <?php endif; ?>
Ахаха, спасибо вам)