2013-04-08 112 views
0

已使用互聯網的代碼示例製作簡碼以返回特定頁面。然而,短代碼似乎不是呈現,而是顯示短代碼文本。該功能已在functions.php中定義。自定義簡碼無法呈現

的代碼如下:

/* Code taken from: 
* http://alex.leonard.ie/2010/09/09/wordpress-shortcode-to-insert-content-of-another-page/ 
*/ 

function pa_insertPage($atts, $content = null) { 
    // Default output if no pageid given 
    $output = NULL; 
    // extract atts and assign to array 
    extract(shortcode_atts(array(
    "page" => '' // default value could be placed here 
    ), $atts)); 
    // if a page id is specified, then run query 
    if (!empty($page)) { 
    $pageContent = new WP_query(); 
    $pageContent->query(array('page_id' => $page)); 
    while ($pageContent->have_posts()) : $pageContent->the_post(); 
    // assign the content to $output 
    $output = get_the_content(); 
    endwhile; 
    } 
    return $output; 
} 
add_shortcode('insert_page', 'pa_insertPage'); 
+0

錯誤?輸出? $內容是在哪裏引用的? – 2013-04-08 11:01:28

+0

短代碼的引用就像是在一個帖子裏面[insert_page page =「154」] – 2013-04-08 11:03:30

+0

請把你如何在帖子中調用短代碼。另外,從你的鏈接,你使用'do_shortcode'方法來測試它嗎? – Jon 2013-04-08 11:03:45

回答

0

感謝你的幫助..簡碼似乎是現在的渲染(這個問題很可能錯了function.php文件:))..

看來,主題有另一個功能。 PHP文件,該文件是使用..(不知道的主題做了一個副本或者被錯誤由開發完成.. :))..

問候

1

不是一個問題的答案(這問題不在於此,而不是在代碼中),但是代碼的優化版本。以社區Wiki模式發佈,因此不會有意外的下調或上漲的聲望。

add_shortcode('insert_page', 'insert_page_so_15877376'); 

function insert_page_so_15877376($atts, $content = null) 
{ 
    // Default output if no pageid given 
    $output = ''; 

    // Access $atts directly, no need of extracting 
    if(!isset($atts['page'])) 
     return $output; 

    // Grab the page directly, no need of WP_Query 
    // get_post() could be used as well 
    $get_page = get_page($atts['page']); 
    if(!$get_page) 
     return $output; 

    // Do Shortcode in case the other page contains another shortcode 
    $output = do_shortcode($get_page->post_content); 
    return $output; 
} 
+0

會嘗試讓知道..謝謝.. – 2013-04-08 18:08:46