这是我建议的解决方案,它要求您使用Widget Logic 或Dynamic Widgets.
将下面的代码添加到您的主题或自定义插件中,在我提到的所有插件中创建我们将用于iframe
src
属性(给它一个描述性的标题,开发人员往往会忘记很多)
将您想要的小部件添加到侧栏“我的Iframe”(如果您没有更改该名称)将小部件限制到您之前创建的页面,如果您使用侧栏逻辑,则将使用条件is_single(N);
其中N是页面或帖子ID。现在您可以将iframe添加到非WordPress网站,下面的代码是第一步的代码:/**
* Verify dependencies
*
* In this example, we check for plugins in this order:
* - Widgets Logic
* - Dynamic Widgets
*/
define(
\'WPSE_168484_ERROR\'
, __( \'Please install and activate <strong>Widgets Logic</strong> or <strong>Dynamic Widgets</strong> and use one of them to show only one widget per page, you can still use many iframes in the non-WordPress website.\' )
);
function_exists( \'widget_logic_options_control\' )
|| defined( \'DW_VERSION\')
|| die( WPSE_168484_ERROR );
// Declare sidebar
register_sidebar( array(
\'name\' => __( \'My Iframe\', \'my_textdomain\' ),
\'id\' => \'my_iframe\',
) );
// Show sidebar as HTML
add_action( \'init\', \'my_iframe_widget\' );
function my_iframe_widget() {
if( is_active_sidebar( \'my_iframe\' ) ) {
// Get widget HTML
ob_start();
dynamic_sidebar( \'my_iframe\' );
$widget_html = ob_get_clean();
// Remove wrapping <li>
$widget_html = preg_replace( \'/^<li.+>/\', \'\', $widget_html );
$widget_html = preg_replace( \'/<\\/li>$/m\', \'\', $widget_html );
// Make Valid HTML5
$widget_html = "<!doctype html><meta charset=utf-8>$widget_html";
// Output and exit
die( $widget_html );
}
}
以下是第六步的代码:<iframe src="http://example.com/index.php?p=N" />
更换http://example.com/ 使用URL和N以及页面或帖子ID。