div 中未出现函数输出
Function output not appearing in div
这是我第一次尝试 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 或 class id,只是显示为文本.我如何将它包装在 div 中并提供 id 以便它正确地位于内容页面上(它应该显示在 2 个图像之间和另一个短代码下方)我之前已经设法给它一个 class 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' );
谢谢
- 托卡
简码函数应该return结果,而不是直接输出。
function wpsl_staff() {
return '<div class="staff">' .wpsl_get_staff(). '</div>';
}
编辑:你只能从一个函数中 return 一个值 - 所以如果你的 wpsl_get_staff
应该是所有三种类型的 return 数据,那么你需要 assemble 首先将数据放入一个字符串变量中,然后 return 在函数的末尾 - 像这样:
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;
}
这是我第一次尝试 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 或 class id,只是显示为文本.我如何将它包装在 div 中并提供 id 以便它正确地位于内容页面上(它应该显示在 2 个图像之间和另一个短代码下方)我之前已经设法给它一个 class 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' );
谢谢
- 托卡
简码函数应该return结果,而不是直接输出。
function wpsl_staff() {
return '<div class="staff">' .wpsl_get_staff(). '</div>';
}
编辑:你只能从一个函数中 return 一个值 - 所以如果你的 wpsl_get_staff
应该是所有三种类型的 return 数据,那么你需要 assemble 首先将数据放入一个字符串变量中,然后 return 在函数的末尾 - 像这样:
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;
}