簡體   English   中英

將wordpress插件掛鈎到單個頁面以呈現一些html / javascript內容的最佳方法是什么?

[英]What is the best way to hook wordpress plugin to a single page in order to render some html/javascript content?

我開發了一個WordPress插件,它可以呈現一些動態的html和javascript內容。 我想知道我應該如何修改它,以便它可以掛鈎到我的wordpress應用程序中的單個頁面。

我的想法是將插件函數綁定到自定義掛鈎,並在頁面上調用此掛鈎,但是,我不知道如何從特定頁面調用掛鈎。 或者將它掛鈎到你想要的頁面部分,然后使用條件語句只渲染我是否是正確的頁面? 這看起來很煩人,因為我希望能夠在任何頁面上使用我的插件而無需修改它。 有沒有辦法可以將所需的頁面作為參數傳遞給它?

我正在尋找“最佳實踐”解決方案,所以如果問題有點寬泛我會道歉。

如果這是一個公共插件,您將無法“烘焙”它應該顯示的頁面/帖子。

你要么需要:

1)添加某種選項頁面。 有關更多信息,請查看選項頁面文檔

2)將Meta Box添加到您希望它應用於的帖子類型中,其中有一個選項,用於在帖子上設置元值。

根據提供的信息,我傾向於#2,然后您可以檢查是否設置了元值,如果是,則顯示您的插件的代碼:

if( is_single() && get_post_meta( get_the_ID(), 'run_amin_hakem_plugin', true ) == true ){
    // Do your thing        
}

然后,您可以將上面的代碼添加到適當的鈎子中,例如wp_headwp_footer ,或者應該顯示輸出的位置。

有多個鈎子可以幫助您渲染所需的html / js。 首先想到的是

  1. wp_head
  2. wp_footer
  3. the_content
  4. the_title

如果有側邊欄,您可以添加窗口小部件控件插件並在特定頁面上顯示窗口小部件。

如果您最終使用上述任何鈎子或任何其他鈎子,您可以使用以下之一進行條件檢查:

  1. is_page_template \\假設您知道正在使用的自定義模板。
  2. is_page \\您需要知道頁面ID / slug或標題

然后有許多檢查將檢查它是否正在加載single.php或任何分類法等。

希望這能回答你的問題。

這應該是基於帖子ID定位的一個很好的例子

add_action( 'the_content', 'my_override_function' );
function my_override_function($content) {
    global $post;
    if ($post->ID == 123) {
        return 'Hello my friend<br>'.$content;
    } else {
        return $content;
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM