2015-04-29 5 views
1

Я сделать детскую тему из этой темы (limo), и я пытаюсь сделать две вещи без успеха, так вот мои вопросы:Два вопроса о функции post_type в WordPress

  1. Как я могу получить Постоянная ссылка из post_type?

Как вы можете видеть на этой демонстрации (часть «Наши работы»), я хотел бы получить ссылку на это сообщение. Таким образом, вы бы нажали на этот заголовок изображения/сообщения, и он откроет эту страницу. Использование функции get_permalink() ничего не происходит.

Функция заключается в следующем:

function ccr_our_works() { 

$labels = array(
    'name'    => __('Our works', 'codexcoder'), 
    'singular_name'  => __('Our work', 'codexcoder'), 
    'add_new'    => _x('Add New Work', 'codexcoder', 'codexcoder'), 
    'add_new_item'  => __('Add New Work', 'codexcoder'), 
    'edit_item'   => __('Edit Our Work', 'codexcoder'), 
    'new_item'   => __('New Our Work', 'codexcoder'), 
    'view_item'   => __('View Our Work', 'codexcoder'), 
    'search_items'  => __('Search Our works', 'codexcoder'), 
    'not_found'   => __('No Our works found', 'codexcoder'), 
    'not_found_in_trash' => __('No Our works found in Trash', 'codexcoder'), 
    'parent_item_colon' => __('Parent Our Work:', 'codexcoder'), 
    'menu_name'   => __('Works', 'codexcoder'), 
    ); 

$args = array(
    'labels'    => $labels, 
    'hierarchical'  => false, 
    'description'   => 'description', 
    'taxonomies'   => array(), 
    'public'    => true, 
    'show_ui'    => true, 
    'show_in_menu'  => true, 
    'show_in_admin_bar' => true, 
    'menu_position'  => null, 
    'menu_icon'   => null, 
    'show_in_nav_menus' => true, 
    'publicly_queryable' => true, 
    'exclude_from_search' => false, 
    'has_archive'   => true, 
    'query_var'   => true, 
    'can_export'   => true, 
    'rewrite'    => true, 
    'capability_type'  => 'post', 
    'supports'   => array(
     'title', 'editor', 'thumbnail' 
     ) 
    ); 

    register_post_type('work', $args); 
} 

add_action('init', 'ccr_our_works'); 

И я делаю это, чтобы получить ссылку на сообщение:

<!-- Slider items --> 
        <div class="carousel-inner"> 

         <div class="item active"> 
          <?php 
          $loop = new WP_Query('post_type=work&posts_per_page=4'); 
          while ($loop->have_posts()) { 
           $loop->the_post(); 
           ?> 
           <div class="col-sm-3"> 
            <figure> 
             <?php the_post_thumbnail(); ?> 
             <figcaption> 
              <h4><a href="<?php get_permalink(); ?>"><?php the_title(); ?></a></h4> 
             </figcaption>       
            </figure> 
           </div> 
           <?php } ?> 
          </div> <!-- /.active /.item --> 
          <div class="item"> 
           <?php 
           $loop = new WP_Query('post_type=work&posts_per_page=4&offset=4'); 
           while ($loop->have_posts()) { 
            $loop->the_post(); 
            ?> 
            <div class="col-sm-3"> 
             <figure> 
              <?php the_post_thumbnail(); ?> 
              <figcaption> 
               <h4><a href="<?php get_permalink(); ?>"><?php the_title(); ?></a></h4> 
              </figcaption>       
             </figure> 
            </div> 
            <?php } ?> 
           </div> <!-- /.active /.item --> 

          </div> <!-- /.carousel-inner --> 
          <!--/.carousel --> 

         </div> <!-- /#work-slide --> 

Как я могу это сделать?

  1. Как создать шаблон страницы, чтобы присоединиться ко всем этим сообщениям определенного типа post_type на одной странице?

Что я пробовал:

<?php 
/* 
Template Name: Our Works 
*/ 
?> 

<?php get_header(); ?> 

<!-- begin colLeft --> 
    <div id="colLeft"> 


     <?php 
     $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; 
     $args = array(
      'posts_per_page' => 5, 
      'post_type' => 'our_works', 
      'paged' => $paged 
     ); 

     query_posts($args); 
     ?> 

     <h1><?php the_title(); ?></h1> 

     <div> 

      <?php if (have_posts()) : while (have_posts()) : the_post(); ?> 
      <h2 class="entry-title"><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2> 


      <?php the_excerpt(); ?> 
      <a href="<?php the_permalink(); ?>">Read more →</a> 
      <br><br> 


      <?php endwhile; ?> 

      <?php if (function_exists("emm_paginate")) { 
       emm_paginate(); 
      } ?> 

      <?php wp_reset_postdata(); ?> 

      <?php else : ?> 
       <p><?php _e('Not found'); ?></p> 
      <?php endif; ?> 

     </div> 

    </div> 

    <!-- end colleft --> 

    <?php get_sidebar(); ?> 

<?php get_footer(); ?> 

Любая помощь? Я хотел бы понять, как с этим бороться.

ответ

2

Да ладно.

1) Permalinks использовать

 <?php the_permalink();?> 

2) Для вашей страницы, попробуйте это

 <?php 
    /* 
    Template Name: Our Works 
    */ 
    ?> 

    <?php get_header(); ?> 

    <!-- begin colLeft --> 
    <div id="colLeft"> 


    <?php 
    $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; 
    query_posts(array('paged' => get_query_var('paged'), 'posts_per_page'=>5, 'post_type'=>'our_works', 'order' => 'ASC'))?> 



    <h1><?php the_title(); ?></h1> 

    <div> 
     <?php if (have_posts()) : while (have_posts()) : the_post(); ?> 

     <h2 class="entry-title"><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2> 


     <?php the_excerpt(); ?> 
     <a href="<?php the_permalink(); ?>">Read more →</a> 
     <br><br> 


     <?php endwhile;?> 

     <?php if (function_exists("emm_paginate")) { 
      emm_paginate(); 
     } ?> 

     <?php wp_reset_postdata(); ?> 

     <?php else : ?> 
      <p><?php _e('Not found'); ?></p> 
     <?php endif; ?> 

    </div> 

</div> 

<!-- end colleft --> 

<?php get_sidebar(); ?> 
+0

Спасибо так много! – U23r

+0

Привет, я только заметил, что эта функция разбиения на страницы не работает. Он показывает только 5 сообщений на странице, хорошо. Но у меня 8 сообщений, и это показывает только последние пять опубликованных, без разбивки на страницы для доступа к другим. Любая идея исправить это? – U23r

+0

Попробуйте до $ args add $ offset = (1 * $ paged) - 1; –

Смежные вопросы