创建一个包含 PHP 的简码,用于 WordPress 帖子和页面
create a shortcode with a PHP include for use in WordPress posts and pages
我想知道是否有一种方法可以创建一个短代码以在 Wordpress 页面上的可视页面构建器中使用,这样我就可以将其用作 PHP 包含。我需要从名为 form.php 的文件中将一些 PHP 代码添加到我的页面中,可视化页面构建器只允许您添加 HTML。如果可能的话,我宁愿不使用插件。我需要使用此代码,但它无法识别它。
<?php include 'form.php';?>
当然 - 您可以使用一个短代码来接受一个参数(要包含的文件)并简单地输出其内容:
add_shortcode('include', 'include_php_file');
function include_php_file($atts=array(), $content='') {
$atts = shortcode_atts(array(
'file' => ''
), $atts);
if(!$atts['file']) return ''; // needs a file name!
$file_path = dirname(__FILE__).'/'.$atts['file']; // adjust your path here
if(!file_exists($file_path)) return '';
ob_start();
include($file_path);
$html = ob_get_contents();
ob_end_clean();
return $html;
}
希望对您有所帮助!
您还可以编辑该页面的模板并有条件地仅包含该 post 的文件。
是:
if( is_page('contact') include('path/to/file.php');
如果您需要在多个页面中显示该文件,请将数组传递给 is_page
:
if( is_page( array( 'about-us', 'contact', 'management' ) )
//either in about us, or contact, or management page is in view
include('path/to/file.php');
else
//none of the page about us, contact or management is in view
我想知道是否有一种方法可以创建一个短代码以在 Wordpress 页面上的可视页面构建器中使用,这样我就可以将其用作 PHP 包含。我需要从名为 form.php 的文件中将一些 PHP 代码添加到我的页面中,可视化页面构建器只允许您添加 HTML。如果可能的话,我宁愿不使用插件。我需要使用此代码,但它无法识别它。
<?php include 'form.php';?>
当然 - 您可以使用一个短代码来接受一个参数(要包含的文件)并简单地输出其内容:
add_shortcode('include', 'include_php_file');
function include_php_file($atts=array(), $content='') {
$atts = shortcode_atts(array(
'file' => ''
), $atts);
if(!$atts['file']) return ''; // needs a file name!
$file_path = dirname(__FILE__).'/'.$atts['file']; // adjust your path here
if(!file_exists($file_path)) return '';
ob_start();
include($file_path);
$html = ob_get_contents();
ob_end_clean();
return $html;
}
希望对您有所帮助!
您还可以编辑该页面的模板并有条件地仅包含该 post 的文件。
是:
if( is_page('contact') include('path/to/file.php');
如果您需要在多个页面中显示该文件,请将数组传递给 is_page
:
if( is_page( array( 'about-us', 'contact', 'management' ) )
//either in about us, or contact, or management page is in view
include('path/to/file.php');
else
//none of the page about us, contact or management is in view