Поддержка Проблемы и решения Подключение файла через functions.php

  • Решено dmitryi92

    (@dmitryi92)


    Нужно вывести дополнительный контент только в одном типе публикации . Для этого воспользовался фильтром the_content. Код следующий:

    function my_custom_function( $content ) {
        global $post;
       if($post->post_type == 'custom_post_type'){
        $a = include '/file.php';
    }
    return $content . $a;
    }
    add_filter( 'the_content', 'my_custom_function', 10, 1 );

    Вопрос в том, как правильно подключить файл? Способ, который описан в коде выше не работает

Просмотр 5 ответов — с 1 по 5 (всего 5)
  • Нужно вывести дополнительный контент только в одном типе публикации

    Почему просто не сделать шаблон для этого типа?

    Вариант с шаблоном не подходит, есть свои нюансы

    Модератор Denis Yanchevskiy

    (@denisco)

    WordPress-разработчик, denisco.pro

    Попробуйте так:

    function my_custom_function( $content ) {
       global $post;
       if($post->post_type == 'custom_post_type'){
           ob_start();
           include '/file.php';
           $a = ob_get_clean();
           return $content . $a;
       }
    
       return $content;
    }
    add_filter( 'the_content', 'my_custom_function', 10, 1 );

    Тип текущей записи можно получить с помощью функции get_post_type().

    Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    include() нужно заменить на file_get_contents():

    
    $a = file_get_contents( '/file.php' );
    

    Или воспользоваться буферизацией вывода:

    
    ob_start();
    include( '/file.php' );
    $a = ob_get_clean();
    

    Также стоит перепроверить путь к файлу, сервер может искать его совсем не там, где вы предполагаете. Если файл в корневом каталоге сайта — можно воспользоваться константой ABSPATH:

    
    include( ABSPATH . 'file.php' );
    

    Спасибо за помощь откликнувшимся. Способ Denis Yanchevskiy (@denisco) помог!

Просмотр 5 ответов — с 1 по 5 (всего 5)
  • Тема «Подключение файла через functions.php» закрыта для новых ответов.