如何从包含短代码的页面获取页面ID。 我尝试了这个但是无法用我试过的不同方法来获得它。
这是代码
function pro_availabiltyid() {
global $pro_templateid;
$pro_wp_query= new WP_Query(
array(
'post_type' => 'page',
)
);
if ( $pro_wp_query->have_posts() ) {
while ( $pro_wp_query->have_posts() ) {
$pro_wp_query->the_post();
$post_content = get_the_content();
if ( has_shortcode( $post_content, 'availability' ) ) {
$pro_templateid = get_the_ID();
}
}
wp_reset_postdata();
}
}
add_action( 'init', 'pro_availabiltyid' );
var_dump( $pro_templateid );
网页内容
Lorem Ipsum
[availability]
我做错了什么?
答案 0 :(得分:0)
在活动主题文件夹
中的functions.php
中添加代码
function detect_my_shortcode()
{
global $post,$pro_templateid;
$pattern = get_shortcode_regex();
if ( preg_match_all( '/'. $pattern .'/s', $post->post_content, $matches )
&& array_key_exists( 2, $matches )
&& in_array( 'availability', $matches[2] ) ) //YOUR SHORTCODE
{
// shortcode is being used
$pro_templateid = $post->ID;
}
}
add_action( 'wp', 'detect_my_shortcode' );