2014-02-08 66 views
0

我有一個頁面模板就位,分配給名爲cartoonbooks的頁面。自定義帖子類型也被稱爲卡通漫畫。我如何讓頁面將customposttype傳遞給pagetemplate,以便我可以爲不同的頁面使用相同的模板。我嘗試使用簡碼,但不成功... plz幫助簡碼將自定義帖子類型名稱傳遞給頁面模板

的functions.php

<?php 
function my_shortcode_handler($atts, $content = null) { 
    extract(shortcode_atts(array(
     'attr_1' => '',  
    // ...etc 
    ), $atts)); 
return $attr_1; 
} 
add_shortcode('myshortcode', 'my_shortcode_handler'); 
?> 

頁books.php

<article>  
    <?php    
     //Define the loop based on arguments 

     $loop = new WP_Query($attr_1); 

     //Display the contents 

     while ($loop->have_posts()) : $loop->the_post(); 
    ?> 

     <?php the_content(); ?> 

    <?php endwhile;?>  
    </article> 
頁面

我把短碼

[myshortcode attr_1="cartoonbooks"] 

我更新了我的代碼仍然是d oesn't工作...繼承人的新

的functions.php

function shortcode_handler($atts, $content = null) { 
    extract(shortcode_atts(array(
     'posttype' => '',   
    // ...etc 
    ), $atts)); 
return do_shortcode($posttype); 
} 
function register_my_shortcode(){ 
add_shortcode('shortcode', 'shortcode_handler'); 
} 
add_action('init','register_shortcode'); 
?> 

page.php文件

<?php 

    $args = do_shortcode($content); 

    //Define the loop based on arguments 

    $loop = new WP_Query($args); 

    //Display the contents 

    while ($loop->have_posts()) : $loop->the_post(); 
?> 
     <div><?php the_title('')?></div> 


<?php endwhile;?> 

在所謂的頁面carttonbooks本身我把代碼

[myshortcode posttype="cartoonbooks"] 

在anothe稱爲頁adventurebooks我把代碼

[myshortcode posttype="adventurebooks"] 

但模板不採取從shortcod的posttype和顯示他的內容... plzhelp

回答

0

確定爲那些誰可能在未來這個問題...我發現通過測試和試驗方法......其非常容易的解決方案。

現在說你的帖子類型是書籍,而slu is也是書籍,因此存檔頁面將被歸檔。

創建一個頁面作爲書籍(slug os檔案和頁面應該是相同的),並將其添加到菜單不需要任何模板,它會自動抓取檔案書籍內容...所以無論你需要什麼樣式檔案頁

0

在WordPress模板文件來調用簡碼我們使用do_shortcode() 試試這個:

<?php echo do_shortcode('[myshortcode "cartoonbooks"]'); ?> 

Know more

+0

如果我把上面的代碼放在模板中,那麼當帖子類型改變爲說'冒險書'時,模板仍然會顯示漫畫書的內容,因爲do_shortcode已經將漫畫書分配給它 – user3117694

相關問題