2011-09-01 44 views
0


現在我正在使用下面的插件-'shortcoder'來允許我使用單個帖子推送我的WordPress站點的整個首頁。 以下是我後在wordpress中分割通過'the_content()'得到的內容

[shortcode 1] 
[shortcode 2] 
[shortcode 3] 
[shortcode 4] 
[shortcode 5] 
[shortcode 6] 

眼下這些都是靜態的只包含HTML和JavaScript內容的結構。這篇文章使用'the_content()'模板標籤顯示在我的index.php上。

但是現在我將從我的其他帖子中提取一些動態內容來代替邏輯將在index.php文件中進行硬編碼的一些這些簡碼。對於eg.-

[shortcode 1] static 
[shortcode 2] static 
[shortcode 3] dynamic 
[shortcode 4] static 
[shortcode 5] dynamic 
[shortcode 6] static 

只是要清楚所有的靜態部分會通過短碼,但動態部分將在index.php文件被硬編碼。 但是,由於串行順序,這個邏輯正在變得混亂。

我想以某種方式將通過'the_content()'進入的內容分解爲適當的靜態部分。

對不起,但我希望有人能想出一個解決方案。

回答

0

這是我用普通的PHP explode-

我第一次添加了「〜」分隔符爲我所有的簡像解決我的問題 - 使用下面的代碼我分開的簡

[Shortcode1]~[Shortcode2]~[Shortcode3] 

然後 -

<?php 
    ob_start(); 
    the_content(); 
    $content = ob_get_clean(); 
    $part = explode('~', $content); 
    ?> 

之後,我所做的只是在迴盪在正確的位置所需的變量在模板 -

<?php echo $part[0]; ?>,.... 
0

您可以創建自己的短代碼來調用要運行的腳本。

例如,在你的functions.php文件,你可以添加這樣的:現在

<?php 
function my_shortcode_callback($atts){ 

    $name = attr('name'); 

    switch($name){ 
     case 'script_1': 
     // run code for script_1, maybe through a custom function 
     script_1(); 
     break; 
     case 'script_2': 
     // run code for script_2, maybe through another custom function 
     script_2(); 
     break; 

    } 
} 

add_shortcode('my_shortcode', 'my_shortcode_callback'); 
?> 

,在您的文章編輯器,你可以添加自己的簡碼交織着插件的,如:

[shortcode 1] static 
[shortcode 2] static 
[my_shortcode name='script_1'] dynamic 
[shortcode 4] static 
[my_shortcode name='script_2'] dynamic 
[shortcode 6] static 

因此,基本上,你會使用你的插件靜態代碼和你自己的短代碼動態代碼=)

我希望能幫助或讓你在正確的方向。讓我知道!