2015-11-05 59 views
0

我有两个单独的页面,显示了链接到wordpress中完整帖子的不同类别列表。这两个目前在我的主题single.php打开,但类别需要在每个页面上不同的风格。在不同的页面中打开wordpress帖子

我已经创建的模板页,但不知道如何打开手机的single.php

以外的其他页面上的帖子,以简化:我怎样打开帖子上的single.php

的另一个版本代码我有打开完整的职位是:

<?php // PAGE LINK/TITLE   
if (is_page()) { 
    $cat=get_cat_ID($post->post_title); //use page title to get a category ID 
    $posts = get_posts ("category_name=case-study&posts_per_page=10"); 
    if ($posts) { 
    foreach ($posts as $post): 
     setup_postdata($post); 

?> 
<div class="serve-inner-split"> 
       <div id="case-split"> 
         <div id="case-left" class=" serve-left"> 
          <div id="case-study-content"> 
           <h1 class="case-study-title"><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></h1> 
           <p><?php //PULLS IN EXCERPT 
            $my_excerpt = get_the_excerpt(); 
            if ('' != $my_excerpt) { 
             // Some string manipulation performed 
            } 
            echo $my_excerpt; // Outputs the processed value to the page 

            ?> 
           </p> 
           <a href="#" class="header-quote">READ CASE STUDY</a> 
          </div> 
         </div> 
         <div id="case-right" class="serve-grey"> 
    <?php 
if (has_post_thumbnail()) { // PULLS IN IMAGE check if the post has a Post Thumbnail assigned to it. 
    the_post_thumbnail(); 
} 
?> 
         </div> 
        </div> 

</div> 



<?php endforeach; 
    } 
} 
?> 

回答

1

你好:)我会被你需要不同的方式显示单后每种情况下创建自定义后类型实现这一目标。在这种情况下你可以参考WP Codex https://codex.wordpress.org/Post_Types。最终,它将允许您创建尽可能多的单个发布模板。

+0

或者他可以以不同的方式添加类别字段和样式index.php;) –

+0

自定义帖子类型是我最喜欢的“开箱即用”解决方案,对于WP管理员面板不太熟悉的用户也很方便使用:) – markoffden

0

我会创建额外的类别字段。在functions.php添加

add_action ('edit_category_form_fields', 'mytheme_extra_category_fields'); 
add_action ('category_add_form_fields', 'mytheme_extra_add_category_fields'); 

if (! function_exists('mytheme_extra_category_fields')){ 
    function mytheme_extra_category_fields($tag) { 
     $t_id = $tag->term_id; 
     $cat_meta = get_option("category_$t_id"); 
     ?> 
     <tr class="form-field"> 
      <th scope="row" valign="top"><label for="extra1"><?php esc_attr_e('Blog Layout', 'mytheme'); ?></label></th> 
      <td> 
       <select name="Cat_meta[blog_layout]"> 
        <?php 
        echo '<option value="layout1" '.selected($cat_meta['blog_layout'], 'layout1', false).'>'.esc_html__('Layout 1', 'mytheme').'</option> '; 
        echo '<option value="layout2" '.selected($cat_meta['blog_layout'], 'layout2', false).'>'.esc_html__('Layout 2', 'mytheme').'</option> '; 
        ?> 
       </select> 
      </td> 
     </tr> 

    <?php 
    } 
} 

if (! function_exists('mytheme_extra_add_category_fields')){ 
    function mytheme_extra_add_category_fields($tag) { 
     $t_id = (is_object($tag))?$tag->term_id:''; 
     $cat_meta = get_option("category_$t_id"); 
     ?> 

     <div class="form-field"> 
      <label for="extra1"><?php esc_attr_e('Blog Layout', 'mytheme'); ?></label></th> 
      <select name="Cat_meta[blog_layout]"> 
       <?php 
       echo '<option value="layout1" '.selected($cat_meta['blog_layout'], 'layout1', false).'>'.esc_html__('Layout 1', 'mytheme').'</option> '; 
       echo '<option value="layout2" '.selected($cat_meta['blog_layout'], 'layout2', false).'>'.esc_html__('Layout 2', 'mytheme').'</option> '; 
       ?> 
      </select> 
     </div> 

     <?php 
    } 
} 
add_action ('edited_category', 'mytheme_save_extra_category_fileds'); 
add_action ('created_category', 'mytheme_save_extra_category_fileds'); 

if (! function_exists('mytheme_save_extra_category_fileds')){ 
    function mytheme_save_extra_category_fileds($term_id) { 
     if (isset($_POST['Cat_meta'])) { 
      $t_id = $term_id; 
      $cat_meta = get_option("category_$t_id"); 
      $cat_keys = array_keys($_POST['Cat_meta']); 
      foreach ($cat_keys as $key){ 
       if(isset($_POST['Cat_meta'][$key])){ 
        $cat_meta[$key] = $_POST['Cat_meta'][$key]; 
       } 
      } 
      update_option("category_$t_id", $cat_meta); 
     } 
    } 
} 

这应该输出的选择“博客布局”当你添加的类别到您的文章。然后在您的index.php添加

$cat_id = get_query_var('cat'); 
$cat_data = get_option("category_$cat_id"); 

<?php if(isset($cat_data['blog_layout']) && $cat_data['blog_layout'] == 'layout1'): ?> 

\\Your layout1 here 

<?php else: ?> 

\\Your layout2 here 

<?php endif; ?> 

这应该有效。

0

要解决这个问题我替换整个的single.php文件与此代码:

<?php 
if (in_category('2')) {include (TEMPLATEPATH . '/page-case-study-post.php'); 
} 
else { include (TEMPLATEPATH . '/page-services-post.php'); 
} 
?>; 

发送或者类别,这取决于其设置为两个不同的网页。

相关问题