Intereting Posts
Как обновить ядро ​​WordPress или темы и по-прежнему работать с моими дочерними темами Как включить WPML в многоязычный плагин BuddyPress на одном веб-сайте? перенаправление WordPress после сброса пароля можем ли мы предоставить пользователю логин в 2 установках wordpress в 2 поддоменах на одном сервере? Прокрутите страницу до страницы только для категорий – woocommerce Как вы управляете своими темами при приватном распространении? get_posts (), казалось бы, игнорируя post_type Шаблон страницы для блога не работает Проверьте, просматриваем ли мы событие Есть ли простой способ управления возможностями для каждого пользователя? Сделать нужное изображение как получить титул и изображение категории детей add_action перед настройкой темы Получите URL-адрес шаблона страницы без использования пула страниц и идентификатора Hook для возврата true, когда the_post () используется в пользовательском цикле while

Как создать страницу и отобразить только сообщения со специальным значением поля?

Я хотел бы создать страницу (назовем ее «Facebook»), где я покажу только сообщения, которые имеют настраиваемое поле: «Facebook» и, в частности, значение настраиваемого поля: «Да».

PS 1. Я хотел бы включить заголовок темы, слайдер, нижний колонтитул, боковые панели и т. Д. 2. Я использую плагин Advanced Custom Fields

<?php get_header(); ?> <div class="content-wrap"> <div class="content"> <?php tie_breadcrumbs() ?> <?php if ( ! have_posts() ) : ?> <div id="post-0" class="post not-found post-listing"> <h1 class="post-title"><?php _e( 'Not Found', 'tie' ); ?></h1> <div class="entry"> <p><?php _e( 'Apologies, but no results were found for the requested archive. Perhaps searching will help find a related post.', 'tie' ); ?></p> <?php get_search_form(); ?> </div> </div> <?php endif; ?> <?php if ( have_posts() ) while ( have_posts() ) : the_post(); ?> <?php $get_meta = get_post_custom($post->ID); ?> <?php //Above Post Banner if( empty( $get_meta["tie_hide_above"][0] ) ){ if( !empty( $get_meta["tie_banner_above"][0] ) ) echo '<div class="ads-post">' .htmlspecialchars_decode($get_meta["tie_banner_above"][0]) .'</div>'; else tie_banner('banner_above' , '<div class="ads-post">' , '</div>' ); } ?> <article class="post-listing post"> <?php tie_include( 'post-head' ); // Get Post Head template ?> <div class="post-inner"> <div class="clear"></div> <div class="entry"> <?php the_content(); ?> <?php wp_link_pages( array( 'before' => '<div class="page-link">' . __( 'Pages:', 'tie' ), 'after' => '</div>' ) ); ?> <?php edit_post_link( __( 'Edit', 'tie' ), '<span class="edit-link">', '</span>' ); ?> </div><!-- .entry /--> </div><!-- .post-inner --> </article><!-- .post-listing --> <?php endwhile; ?> <?php //Below Post Banner if( empty( $get_meta["tie_hide_below"][0] ) ){ if( !empty( $get_meta["tie_banner_below"][0] ) ) echo '<div class="ads-post">' .htmlspecialchars_decode($get_meta["tie_banner_below"][0]) .'</div>'; else tie_banner('banner_below' , '<div class="ads-post">' , '</div>' ); } ?> <?php comments_template( '', true ); ?> </div><!-- .content --> <?php get_sidebar(); ?> <?php get_footer(); ?> 

Solutions Collecting From Web of "Как создать страницу и отобразить только сообщения со специальным значением поля?"

Дублируйте свой шаблон page.php , назовите дублируемую page-facebook.php , page.php имя шаблона:

 /* Template Name: My Facebook Meta Key Page */ 

Дополнительная информация здесь: http://codex.wordpress.org/Page_Templates

Чтобы получить правильные сообщения с get_posts используйте что-то вроде этого:

 <?php $args = array( 'post_type' => 'post', 'meta_query' => array( array( 'key' => 'facebook', 'value' => 'yes', ) ) ); $fbposts = get_posts( $args ); foreach($fbposts as $post) : setup_postdata($post); ?> <h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2> <?php the_content(); ?> <?php endforeach; ?> 

Дополнительная информация здесь: http://codex.wordpress.org/Template_Tags/get_posts

Конечно, вы можете сделать это с помощью WP_Query как GhostToast, это довольно похоже, посмотрите здесь: http://codex.wordpress.org/Class_Reference/WP_Query

Получите сообщения с WP_Query следующим образом:

 <?php $args = array( 'post_type' => 'post', 'meta_query' => array( array( 'key' => 'facebook', 'value' => 'yes', ) ) ); $fbposts = new WP_Query( $args ); if ( $fbposts->have_posts() ) { while ( $fbposts->have_posts() ) { $fbposts->the_post(); echo '<h2><a href="'. the_permalink() .'">'. the_title() .'</a></h2>'; echo the_content(); } } else { } wp_reset_postdata(); ?> 

Вам нужно будет узнать, как создать настраиваемый шаблон страницы и использовать meta_query . Чтобы ваш новый шаблон страницы включал все другие элементы, которые вы хотите, я бы предложил начать с копирования файла шаблона (например, page.php ), который работает так, как вы хотите (по структуре и page.php ). Вы собираетесь wp_query секцию loop и написать свой собственный wp_query .

Добро пожаловать в расширение возможностей WordPress!

Редактировать:

Это измененная версия кода, который вы предоставили. Поймите, что вам следует, как и предлагал @ngsonst, вы хотите сохранить это как другой файл, например facebook-page.php . Затем вы создадите новую страницу из бэкэнд WordPress и назначьте ее этому шаблону, который указан в верхней части файла.

 <?php /**** Template Name: Facebook Page ****/ get_header(); ?> <div class="content-wrap"> <div class="content"> <?php tie_breadcrumbs(); // define parameters for which posts we want $args = array( 'post_type' => 'post', 'meta_query' => array( array( 'key' => 'facebook', 'value' => 'yes', ) ) ); // create new instance of wp_query, the object which loops through posts $loop = new wp_query($args); // as long as it has posts, set current post up and do all of the following while($loop->have_posts()): $loop->the_post(); $get_meta = get_post_custom($post->ID); //Above Post Banner if( empty( $get_meta["tie_hide_above"][0] ) ){ if( !empty( $get_meta["tie_banner_above"][0] ) ) echo '<div class="ads-post">' .htmlspecialchars_decode($get_meta["tie_banner_above"][0]) .'</div>'; else tie_banner('banner_above' , '<div class="ads-post">' , '</div>' ); } ?> <article class="post-listing post"> <?php tie_include( 'post-head' ); // Get Post Head template ?> <div class="post-inner"> <div class="clear"></div> <div class="entry"> <?php // get title as permalink echo '<h2><a href="'. get_permalink() .'">'. get_the_title() .'</a></h2>'; // get content the_content(); wp_link_pages( array( 'before' => '<div class="page-link">' . __( 'Pages:', 'tie' ), 'after' => '</div>' ) ); edit_post_link( __( 'Edit', 'tie' ), '<span class="edit-link">', '</span>' ); ?> </div><!-- .entry /--> </div><!-- .post-inner --> </article><!-- .post-listing --> <?php // end our loop endwhile; //Below Post Banner if( empty( $get_meta["tie_hide_below"][0] ) ){ if( !empty( $get_meta["tie_banner_below"][0] ) ) echo '<div class="ads-post">' .htmlspecialchars_decode($get_meta["tie_banner_below"][0]) .'</div>'; else tie_banner('banner_below' , '<div class="ads-post">' , '</div>' ); } comments_template( '', true ); ?> </div><!-- .content --> <?php get_sidebar(); ?> <?php get_footer(); ?> 

Поймите, что я понятия не имею, что tie_breadcrumbs материал tie_breadcrumbs , и не знаю, будет ли он работать с этим. Вы могли бы легко разбросать все эти части, но хотели оставить это для вас. Сообщите нам, как это получается.