Wordpress: включать содержимое одной страницы в другую - PullRequest
25 голосов
/ 03 ноября 2010

Как включить содержимое одной или нескольких страниц в другую страницу?

ex.У меня есть pageA , pageB и pageC , и я хочу включить содержимоеиз этих страниц в pageX

есть ли функция wordpress, которая загружает сообщение указанной страницы / сообщения?
, как show_post ("pageA")?

Ответы [ 8 ]

46 голосов
/ 04 ноября 2010

Привет @ Дэни :

В ядре WordPress нет функции show_post() как таковой, но ее очень легко написать:

function show_post($path) {
  $post = get_page_by_path($path);
  $content = apply_filters('the_content', $post->post_content);
  echo $content;
}

Обратите внимание, что это будет вызываться с помощью пути к странице, т.е.

<?php show_post('about');  // Shows the content of the "About" page. ?>
<?php show_post('products/widget1');  // Shows content of the "Products > Widget" page. ?>

Конечно, я бы, вероятно, не назвал бы функцию так же обобщенно, как show_post() в случае, если ядро ​​WordPress добавит функцию с тем же именем в будущем. Хотя ваш выбор.

Кроме того, и не имеет значения @ kevtrout , поскольку я знаю, что он очень хорош, рассмотрите возможность размещения ваших вопросов WordPress на родственном сайте StackOverflow Ответы WordPress будущее. Там гораздо больший процент энтузиастов WordPress, отвечающих на вопросы там.

Надеюсь, это поможет.

-Mike

2 голосов
/ 24 апреля 2014

Я нашел этот ответ , опубликованный на форумах Wordpress.Вы добавляете небольшой код в functions.php, а затем просто используете шорткод в любое время.

function get_post_page_content( $atts ) {
        extract( shortcode_atts( array(
            'id' => null,
            'title' => false,
        ), $atts ) );

        $the_query = new WP_Query( 'page_id='.$id );
        while ( $the_query->have_posts() ) {
            $the_query->the_post();
                if($title == true){
                the_title();
                }
                the_content();
        }
        wp_reset_postdata();

    }
    add_shortcode( 'my_content', 'get_post_page_content' );

Для шорткода:

[my_content id="Enter your page id number" title=Set this to true if you want to show title /]
2 голосов
/ 13 ноября 2011

Вы можете установить плагин "Улучшенная страница включения" .После установки вы создаете страницу X и вводите:

[include-page id="123"]
[include-page id="124"]
[include-page id="125"]

, где это идентификаторы страниц A, B и C соответственно

2 голосов
/ 03 ноября 2010

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

Существует три способа получения контента постов из базы данных.:

  1. get_posts
  2. query_posts
  3. WP_Query

Все эти ссылки указывают на Кодекс WordPress.Get_posts и query_posts имеют доступный аргумент 'page_id', где вы можете указать идентификатор страницы, которую вы хотите получить и отобразить.

1 голос
/ 03 ноября 2010
<?php query_posts('p=43');

global $more;
//set $more to 0 in order to only get the first part of the post
$more = 0; 

    // the Loop
    while (have_posts()) : the_post(); 

     // the content of the post ?>
    the_title();
    the_content(); 

    endwhile; ?>

Это, очевидно, часть поста, я получил информацию из кодекса WordPress.

0 голосов
/ 16 января 2019

Решение WordPress для форумов Kit Johnson's с созданием шорткода работает, но добавляет вставленную страницу вверху новой страницы, а не туда, где был добавлен шорткод.Близко, хотя, и может работать на других людей.

из поста WordPress, я собрал воедино это, которое вставляет страницу, где помещен шорткод:

function get_post_page_content( $atts ) {
    extract( shortcode_atts( array(
        'id' => null,
        'title' => false,
    ), $atts ) );
    $output = "";       

    $the_query = new WP_Query( 'page_id='.$id );
    while ( $the_query->have_posts() ) {
        $the_query->the_post();
            if($title == true){
            $output .= get_the_title();
            }
            $output .= get_the_content();
    }
    wp_reset_postdata();
    return $output;

}

Затем бит шорткода работает, как и ожидалось.Если вам не нужен заголовок, title = false не работает, вам нужно полностью отключить заголовок.

0 голосов
/ 13 июля 2011

Есть функция Wordpress для отображения содержимого определенной страницы внутри другой, используя query_posts (), это:

<?php query_posts("posts_per_page=1&post_type=page&post_id=134"); the_post(); ?>

Вы устанавливаете количество отображаемых страниц на 1, тип сообщения - это страница вместо сообщения, а идентификатор страницы

0 голосов
/ 03 ноября 2010

Интересно ... Я искал, как встраивать контент Wordpress в другом месте (как на другом сайте), и нашел кое-что ...

  • www. shooflydesign.org/buzz/past/embedding_wordpress. HTML
    • Показывает, как встраивать контент Wordpress в другой сайт с помощью php-скрипта; может, просто использовать то же самое для встраивания Wordpress в себя?
  • www. Corvidworks. ком / статьи / WordPress-контент на других-страницах
    • аналогичная концепция; вставлять Wordpress на другую страницу; просто попробуйте использовать этот инструмент в новом посте WP
  • кормит себя
    • Мой поиск вытащил несколько предложений, чтобы просто использовать ленту для своего блога, чтобы встроить ее в пост. Ничто не мешает этому. Возможно, вы захотите, чтобы это было автоматизировано, и поэтому реструктуризация подачи может выглядеть проблематично, но это стоит попробовать, в зависимости от того, что вы хотите сделать.

Надеюсь, это квази-полезно. Хотя все они являются решениями для получения вашего WP-контента в каком-то месте , отличающемся от , чем WP ..., они могут работать для вашего заданного вопроса и позволяют отображать A, B и C на X.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...