Домой Wp-Recall WP-Recall: Вопросы и ответы Не работают шорткоды плагинов в моей теме
6ответ(ов) в теме
EmperioAf
не в сети 9 лет
На сайте с 02.10.2015
Участник
1
12:29

Вопрос не относится к плагину 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 ) );
}
}

0
Вова (Otshelnik-Fm)
не в сети 3 дня
На сайте с 27.01.2013
Участник
Тем 43
Сообщения 18654
2
15:10

Если гадать - я бы убрал или закомментировал этот участок:

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' );

46
EmperioAf
не в сети 9 лет
На сайте с 02.10.2015
Участник
3
15:36

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]"); ?>

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

0
Вова (Otshelnik-Fm)
не в сети 3 дня
На сайте с 27.01.2013
Участник
Тем 43
Сообщения 18654
4
15:45

Посмотреть бы от этой темы page.php

1
EmperioAf
не в сети 9 лет
На сайте с 02.10.2015
Участник
5
16:05

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; ?> 

Ахаха, спасибо вам)

1
Вова (Otshelnik-Fm)
не в сети 3 дня
На сайте с 27.01.2013
Участник
Тем 43
Сообщения 18654
6
16:11

Это цикл вордпресс - без него вообще ничего не выведешь.
Получается что написав на странице "Маша" - эта запись не выведется. С этого и надо было начинать, а то с ваших слов получалось, что только шоткод не выводится

0
Тема закрыта. Публикация новых сообщений запрещена.