Подтвердить что ты не робот

Wordpress: включение содержимого одной страницы в другую

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

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

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

4b9b3361

Ответ 1

Привет @dany:

В ядре 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 Answers в будущем. Там гораздо более высокий процент энтузиастов WordPress, отвечая на вопросы там.

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

-Mike

Ответ 2

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

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

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

Ответ 3

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

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

где они являются идентификаторами страниц A, B и C соответственно

Ответ 4

Я нашел этот ответ, размещенный на форумах 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 /]

Ответ 5

<?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 codex.

Ответ 6

Интересно... Я огляделся по поводу того, как вставлять контент Wordpress в другое место (например, на другой сайт) и обнаружил некоторые вещи...

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

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

Ответ 7

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

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

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

Ответ 8

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

из поста 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 не работает, вам нужно полностью отключить заголовок.