这是我第一次尝试使用php。 尝试在wordpress中创建自定义短代码以调用自定义元数据并将其放入页面内容中。没有
,它工作正常function wpsl_staff() {
echo '<div class="staff">' .wpsl_get_staff(). '</div>';
function wpsl_get_staff() {
并且短代码为
add_shortcode( 'wpsl_staff', 'wpsl_get_staff' );
输出正确但输出显示在页面顶部高于所有其他内容,当我在浏览器中检查时,它没有div或类ID,只是作为文本出现。我如何将它包装在div中并给出id以使其正确地位于内容页面上(它应该显示在2个图像之间和另一个短代码之下)我已经设法先给它一个类ID并让它出现在div中但是输出仍然出现在图像和其他短代码上方的页面顶部。
<?php
function wpsl_get_staff() {
global $post;
$queried_object = get_queried_object();{
$Manager = get_post_meta( $queried_object->ID, 'wpsl_Manager', true );
if (!empty( $Manager )) return 'Manager : ' .$Manager . "<br>";
else {}
$Assitant = get_post_meta( $queried_object->ID, 'wpsl_Assistant_Manager', true );
if (!empty( $Assistant )) return 'Assistant Manager : ' .$assistant . "<br>";
else {}
$Agent = get_post_meta( $queried_object->ID, 'wpsl_Agent', true );
if (!empty( $Agent )) return 'Agent : ' .$Agent . "<br>";
else {}
}
}
function wpsl_staff() {
echo '<div class="staff">' .wpsl_get_staff(). '</div>';
}
add_shortcode( 'wpsl_staff', 'wpsl_dio_staff' );
由于
答案 0 :(得分:0)
短代码函数应该返回结果,而不是直接输出它。
function wpsl_staff() {
return '<div class="staff">' .wpsl_get_staff(). '</div>';
}
编辑:你只能从一个函数返回一个值 - 所以如果你的wpsl_get_staff
应该返回所有三种类型的数据,那么你需要先将这些数据组装成一个字符串变量,然后返回在函数的最后 - 类似这样:
function wpsl_get_staff() {
global $post;
$queried_object = get_queried_object();
$output = '';
$Manager = get_post_meta( $queried_object->ID, 'wpsl_Manager', true );
if (!empty( $Manager )) {
$output .= 'Manager : ' .$Manager . "<br>";
}
$Assitant = get_post_meta( $queried_object->ID, 'wpsl_Assistant_Manager', true );
if (!empty( $Assistant )) {
$output .= 'Assistant Manager : ' .$assistant . "<br>";
}
$Agent = get_post_meta( $queried_object->ID, 'wpsl_Agent', true );
if (!empty( $Agent )) {
$output .= 'Agent : ' .$Agent . "<br>";
}
return $output;
}