Как включить содержимое страницы на одну или несколько страниц на другой странице?
ех. У меня есть страницаA , pageB и pageC, и я хочу включить содержимое этих страниц в pageX
есть ли функция wordpress, которая загружает сообщение указанной страницы / сообщения?
например show_post ("pageA")?
Привет @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, отвечая на вопросы.
Надеюсь это поможет.
-Майк
Страницы – это просто сообщения, в которых используется post_type «страницы» в базе данных. Вы можете показать содержимое нескольких страниц на другой странице, написав почтовый запрос в своем шаблоне pageX, который получает сообщения, которые вы указываете, и выводите их в цикле.
Существует три способа получить почтовый контент из базы данных:
Эти ссылки указывают на WordPress Codex. Get_posts и query_posts имеют доступный аргумент, 'page_id', где вы можете указать идентификатор страницы, которую вы хотите получить и отобразить.
Вы можете установить плагин «Улучшенная страница включения» . После установки вы создадите страницу X и введите:
[include-page id="123"] [include-page id="124"] [include-page id="125"]
где это идентификаторы страниц A, B и C соответственно
<?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.
Я нашел этот ответ, размещенный на форумах 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 /]
Интересно … Я огляделся по поводу того, как вставлять контент WordPress в другое место (как на другом сайте), и нашел некоторые вещи …
Надейтесь, что они квази-полезны. Хотя все они являются решениями для получения вашего содержимого WP в каком-либо месте, кроме WP … они могут работать для вашего заданного вопроса и позволяют отображать A, B и C на X.
Существует функция WordPress для отображения содержимого определенной страницы внутри другого с помощью query_posts ():
<?php query_posts("posts_per_page=1&post_type=page&post_id=134"); the_post(); ?>
Вы устанавливаете количество страниц, которые будут отображаться в 1, тип post – это страница вместо сообщения, а идентификатор страницы