如何在发布 post 时为每个 post 使用 post 内容创建简码
how to create shortcode using post content for each post when the post is published
每次使用特定 post 内容发布 post 时,我都想创建短代码,这样我就有了每个不同 post 的短代码,为此我写了这个代码,但它不起作用,任何人都可以帮助。
add_action('publish_adsmanager_banner','create_banner_shortcode');
function create_banner_shortcode()
{
add_shortcode( 'banner_'.get_the_ID().'', 'custom_shortcode' );
}
function custom_shortcode($post_id) {
$message = get_the_content($post_id);
return $message;
}
如果您只将 id 作为属性传递给此短代码怎么办?
add_shortcode( 'my_banner', 'custom_shortcode' ); // [my_banner id="123"]
function custom_shortcode( $atts ) {
$atts = shortcode_atts(
array(
'id' => null,
),
$atts
);
$message = get_the_content( $atts['id'] );
return $message;
}
按照你原来的想法,你不能只创建一个id命名的短代码,它应该在每个wp init上注册。但是在这种情况下,很难仅从简码名称中获得 post 上下文,您必须在每个简码注册时传递一个 id。上面的解决方案将允许您保持 DRY,特别是如果您在使用它们时知道每个横幅的 ID。
每次使用特定 post 内容发布 post 时,我都想创建短代码,这样我就有了每个不同 post 的短代码,为此我写了这个代码,但它不起作用,任何人都可以帮助。
add_action('publish_adsmanager_banner','create_banner_shortcode');
function create_banner_shortcode()
{
add_shortcode( 'banner_'.get_the_ID().'', 'custom_shortcode' );
}
function custom_shortcode($post_id) {
$message = get_the_content($post_id);
return $message;
}
如果您只将 id 作为属性传递给此短代码怎么办?
add_shortcode( 'my_banner', 'custom_shortcode' ); // [my_banner id="123"]
function custom_shortcode( $atts ) {
$atts = shortcode_atts(
array(
'id' => null,
),
$atts
);
$message = get_the_content( $atts['id'] );
return $message;
}
按照你原来的想法,你不能只创建一个id命名的短代码,它应该在每个wp init上注册。但是在这种情况下,很难仅从简码名称中获得 post 上下文,您必须在每个简码注册时传递一个 id。上面的解决方案将允许您保持 DRY,特别是如果您在使用它们时知道每个横幅的 ID。