在查看更新的代码之后,最好使用模板部件来实现这一点。这样做的想法是,您有一个包含各种模板部分的目录,然后可以在您需要的任何地方将其调用到文档中。
这将有助于在某种程度上清理模板。
<?php
query_posts( \'p=1684&posts_per_page=1\');
if ( get_post_status ( \'1684\' ) == \'publish\' )
{
/* CHECK WHETHER WATCH LIST AND WEBINAR WILL BE IN SAME ROW */
if(($NumberConferences % 2) == 0)
{
get_template_part( \'template-parts/watch\', \'list\' );
}
else
{
get_template_part( \'template-parts/other\', \'template\' );
}
}
/**
* Template part "watch-list.php"
* Location: wp-themes/[theme]/template-parts/watch-list.php
*/
echo \'<tr>\';
while( have_posts() ) : the_post();
echo \'<td>\';
echo \'<div class="RightBorderLayer">\';
echo \'<div class="HomeLeftCell">\';
$HomeWatchListImage = types_render_field("watch-list-home-page-image", array("raw"=>"true"));
if($HomeWatchListImage != \'\')
echo \'<a href="\'.get_permalink().\'"><img src="\'.$HomeWatchListImage.\'"></a>\';
$WatchListTitles = get_post_meta($post->ID, \'wpcf-watch-list-title\', false);
$i = 1;
foreach($WatchListTitles as $WatchListTitle)
{
echo \'<li style="text-align: left;"><strong>Workshop \'.$i.\'</strong>: \'.$WatchListTitle.\'</li>\';
$i++;
} // End foreach
echo \'<div class="HomePageCellNote">If you are interested in any of these events and are not regularly receiving WFCA notices, signup for our email list in the bottom left of this page. All regular WFCA subscribers will receive notice of these events as available.</div>\';
echo \'<div style="clear: both;"></div>\';
echo \'</div><!-- End Home Left Cell div -->\';
echo \'</div><!-- End Right Border Layer -->\';
echo \'</td>\';
endwhile;
wp_reset_postdata();
echo \'</tr>\';
如果需要将变量从主模板传递到模板部件,则需要使用以下代码:
include( locate_template( \'template-parts/watch-list.php\' ) );
<人力资源>
Old Answer (example function)
要理解您需要什么有点困难,但是,我在下面附上了一些代码。
功能背后的理念。php文件是您可以在其中创建函数,以便在模板中引用的文件。在下面的示例中,您可以看到有一个条件(总是等于true)。满足条件后,运行so_dynamic_content()
函数中引用的函数。php文件
该函数是基本的,但它可以接受参数,即布局和id,这些参数可用于定制显示的内容。
虽然这并不能直接回答你的问题,但希望它能让你走上正轨。如果没有,请添加评论,我将相应地更新。
<?php
/**
* template-file.php
*/
while ( have_posts() ) : the_post();
$the_id = get_the_ID();
if ( \'Condition X\' == \'Condition X\' ) {
so_dynamic_content( \'left\', $the_id );
} else {
so_dynamic_content( \'right\', $the_id );
}
endwhile;
/**
* functions.php
*/
function so_dynamic_content( $layout, $post_id = \'\' ) {
if ( $post_id == \'\' ) {
global $post;
$post_id = $post->ID;
}
ob_start();
?>
<div class="dynamic-content <?php echo $layout; ?>">
<p>Text</p>
<a href="<?php echo get_permalink( $post_id ); ?>">Anchor</a>
<!-- HTML stuff -->
</div>
<?php
$content = ob_get_clean();
echo $content;
}