【问题标题】:How can I display a full-screen iframe on top of WP page?如何在 WP 页面顶部显示全屏 iframe?
【发布时间】:2017-05-05 14:31:35
【问题描述】:

当有人访问我的 WordPress 网站中的特定页面时,我想在其上显示另一个网站的全屏 iframe。它必须完全覆盖我的网页,所以看起来好像用户现在在另一个网站上(网址仍然是我的)。

我该怎么做?有没有插件呢?

P。 S. 我知道如何编码,但我从未在 WordPress 上开发过任何东西。请具体:)

编辑: 尝试将 iframe 放在 header.php 上:

<?php
/**
 * The header for our theme.
 *
 * This is the template that displays all of the <head> section and everything up until <div id="content">
 *
 * @link https://developer.wordpress.org/themes/basics/template-files/#template-partials
 *
 * @package staymore
 */

?><!DOCTYPE html>
<html <?php language_attributes(); ?>>
<head>
<meta charset="<?php bloginfo( 'charset' ); ?>">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="profile" href="http://gmpg.org/xfn/11">
<link rel="pingback" href="<?php bloginfo( 'pingback_url' ); ?>">

<?php wp_head(); ?>
</head>

<body <?php body_class(); ?>>
    <?php
    // When user visits http://my-website.com/privacy-policy
            if(is_page('privacy-policy'))
            {?>
            <iframe src="http://google.com" style="position:fixed; top:0px; left:0px; bottom:0px; right:0px; width:100%; height:100%; border:none; margin:0; padding:0; overflow:hidden; z-index:999999;">
            Your browser doesn't support iframes
        </iframe>
            <?}
    ?>
<div id="page" class="site">
    <a class="skip-link screen-reader-text" href="#content"><?php esc_html_e( 'Skip to content', 'staymore' ); ?></a>

    <header id="masthead" class="site-header" role="banner">
        <div class="wrap">
        <div class="site-branding">
                <h1 class="site-title"><a href="<?php echo esc_url( home_url( '/' ) ); ?>" rel="home"><?php bloginfo( 'name' ); ?></a></h1>
            <?php 

            $description = get_bloginfo( 'description', 'display' );
            if ( $description || is_customize_preview() ) : ?>
                <p class="site-description"><?php echo $description; /* WPCS: xss ok. */ ?></p>
            <?php
            endif; ?>
        </div><!-- .site-branding -->
        <button class="menu-toggle" aria-controls="primary-menu" aria-expanded="false"></button>
        <nav id="site-navigation" class="main-navigation" role="navigation">
            <?php wp_nav_menu( array( 'theme_location' => 'primary', 'menu_id' => 'primary-menu' ) ); ?>
        </nav><!-- #site-navigation -->

        </div>
    </header><!-- #masthead -->
    <div class="site-banner">
    <!-- #Header-image -->
        <?php if ( get_header_image() ) : ?>
    <a href="<?php echo esc_url( home_url( '/' ) ); ?>" rel="home">
        <img src="<?php header_image(); ?>" width="<?php echo esc_attr( get_custom_header()->width ); ?>" height="<?php echo esc_attr( get_custom_header()->height ); ?>" alt="">
    </a>
    <?php endif; // End header image check. ?>  
    </div>
    <div id="content" class="site-content">
        <div class="wrap">

【问题讨论】:

    标签: wordpress iframe custom-wordpress-pages iframe-resizer


    【解决方案1】:

    这很简单,首先请通过在header.php 文件中放置一个条件标记来检查页面:

        <?php
            // When Page 42 (ID) is being displayed.
            if (is_page( 42 ))
            { ?>
             <iframe src="https://www.w3schools.com/html/html_iframe.asp" frameborder="0" scrolling="yes" seamless="seamless" style="display:block; width:100%; height:100vh;"></iframe>
         <?php   }    ?>
    

    您也可以在此条件标记中使用页面名称或 slug:

    if (is_page('Contact')) {iframe code here}
    

    if(is_page('about-us'))
    

    【讨论】:

    • 这个 header.php 文件在哪里?
    • 它将在您的 wordpress 主题目录中。那就是 wp-content/themes/ur-theme/header.php
    • ehm,你能在第一次编辑后检查我的代码吗?我真的不知道该放在哪里。使用当前代码,它似乎不起作用。
    • 我将 header.php 代码放在第一篇文章中,如果编辑不可见,请尝试刷新页面
    • 好的,经过一些测试,我发现这段代码确实将iframe放在了网页上,但它不可见(我只在页面的视图源中看到它)。此外,页面上的正常链接变得无法点击
    猜你喜欢
    • 1970-01-01
    • 2018-08-28
    • 2014-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-10
    • 1970-01-01
    • 2015-10-23
    相关资源
    最近更新 更多