我在网上发布了一个问题StackExchange Here. 问题已成功回答。
我希望避免在不同的php文件(如内容)中多次复制粘贴一个代码。php或者可能是在某些提要栏区域中再次需要代码等。
shortcode是避免多次粘贴的解决方案吗?但我认为短代码是在WordPress编辑器上使用的,而不是核心php文件?
解决方案是什么?
顺便说一下,我不想重复复制粘贴的完整代码是→
<?php
// Get the id of the post\'s author.
$author_id = get_the_author_meta( \'ID\' );
// Get WP_User object for the author.
$author_userdata = get_userdata( $author_id );
// Get the author\'s website. It\'s stored in the wp_users table in the user_url field.
$author_website = $author_userdata->data->user_url;
// Get the rest of the author links. These are stored in the
// wp_usermeta table by the key assigned in wpse_user_contactmethods()
$author_facebook = get_the_author_meta( \'facebook\', $author_id );
$author_twitter = get_the_author_meta( \'twitter\', $author_id );
$author_linkedin = get_the_author_meta( \'linkedin\', $author_id );
$author_youtube = get_the_author_meta( \'youtube\', $author_id );
// Output the user\'s social links if they have values.
if ( $author_website ) {
printf( \'<a href="%s"><i class="fa fa-home" aria-hidden="true"></i></a>\',
esc_url( $author_website )
);
}
if ( $author_facebook ) {
printf( \'<a href="%s"><i class="fa fa-facebook" aria-hidden="true"></i></a>\',
esc_url( $author_facebook )
);
}
if ( $author_twitter ) {
printf( \'<a href="%s"><i class="fa fa-twitter" aria-hidden="true"></i></a>\',
esc_url( $author_twitter )
);
}
if ( $author_linkedin ) {
printf( \'<a href="%s"><i class="fa fa-linkedin" aria-hidden="true"></i></a>\',
esc_url( $author_linkedin )
);
}
if ( $author_youtube ) {
printf( \'<a href="%s"><i class="fa fa-youtube" aria-hidden="true"></i></a>\',
esc_url( $author_youtube )
);
}
?>
SO网友:Picard
您可以使用PHP\'s includes 像这样:
include dirname(__FILE__).\'/components/authorSocials.php\';
但您应该记住向组件提供数据。由于您的想法是在不同的地方使用它,因此默认值并不总是可用的,并且是正确的,因此您应该为此解决方案添加更多代码:
$user_id = assign_your_user_id_here();
include dirname(__FILE__).\'/components/authorSocials.php\';
然后在“组件”中执行以下操作:
<?php
// Get the id of the post\'s author.
$author_id = get_the_author_meta(\'ID\', $user_id);
.....
?>