有两种可能的方法可以完成您的目标,这两种方法都在我的博客文章中进行了深入描述:https ://allurewebsolutions.com/open-wordpress-post-modal-without-plugin
您也可以为此使用我的插件:https ://wordpress.org/plugins/wp-post-modal/
第一种方法
第一种方法需要修改提供您希望在模式中出现的内容的模板。例如,您有一个名为modal-content-template.php
.
在该模板中,我们将要加载到模式中的内容包装为:
<?php if (!$_GET) { ?>
// content that gets loaded on mobile
<?php } ?>
我们排除了 WordPress 页眉和页脚的模板的完整示例:
<?php if (!$_GET) { get_header(); } ?>
<article>
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<h1 class="page-title"></h1>
<section class="entry-content cf">
<?php the_content(); ?>
</section>
</article>
<?php if (!$_GET) { get_footer(); } ?>
完成这项工作所需的 JS 的CodePen 示例
第二种方法
第二种方法更优雅一些。我们使用该modalContent.load(post_link + ' #modal-ready');
方法来加载模态内容。
模态联系人被包装在一个带有 ID 的包装容器中#modal-ready
。使用挂钩到内容的功能,甚至无需触摸页面模板即可完成此操作。
add_action('the_content', 'wrap_content');
function wrap_content($content)
{
return '<div id="modal-ready">' . $content . '</div>';
}