如何使 wordpress 功能仅适用于单个页面而不适用于页面
How to make wordpress function working only on single & NOT for pages
我正在努力解决一件事。我有这样的 wordpress 功能:
function wpq_insert_attachment_data($data, $postarr){
if (!is_single() ) {
$posttitle = get_the_title( $postarr['post_parent'] );
$data['post_title'] = $posttitle;
$data['post_name'] = $posttitle;
return $data;
}}
add_filter( 'wp_insert_attachment_data', 'wpq_insert_attachment_data', 10, 2 );
它工作得很好,但它涵盖了所有 single/custom post type/pages 等。有什么方法可以从该功能中排除页面吗?我试过用 is_single()
解决它,但没有成功。
仅在特定页面上加载该功能,在 is_page(id_here)
中添加您的页面 ID :
function wpq_insert_attachment_data($data, $postarr){
if ( is_page(page_id)){
$posttitle = get_the_title( $postarr['post_parent'] );
$data['post_title'] = $posttitle;
$data['post_name'] = $posttitle;
return $data;
}
}
add_filter( 'wp_insert_attachment_data', 'wpq_insert_attachment_data', 10, 2 );
您还可以添加您的页面 slug 而不是 id,例如:
if ( is_page('slug'))
或排除页面
if ( !is_page('slug'))
if ( !is_page(array('slug-1', 'slug-2') )
看来您只需要调整您的条件语句:
if (!is_single() ) {
应该变成:
if (!is_page() ) {
在您的语句中使用 is_singular 来定位特定的 post 类型。
也可以做一个数组来包含或排除。
If (! is_singular()) ..... or.....
(! is_singular(array('page','food',foo')))
然后它只会 运行 单曲,无论您定位的 post 类型。
我正在努力解决一件事。我有这样的 wordpress 功能:
function wpq_insert_attachment_data($data, $postarr){
if (!is_single() ) {
$posttitle = get_the_title( $postarr['post_parent'] );
$data['post_title'] = $posttitle;
$data['post_name'] = $posttitle;
return $data;
}}
add_filter( 'wp_insert_attachment_data', 'wpq_insert_attachment_data', 10, 2 );
它工作得很好,但它涵盖了所有 single/custom post type/pages 等。有什么方法可以从该功能中排除页面吗?我试过用 is_single()
解决它,但没有成功。
仅在特定页面上加载该功能,在 is_page(id_here)
中添加您的页面 ID :
function wpq_insert_attachment_data($data, $postarr){
if ( is_page(page_id)){
$posttitle = get_the_title( $postarr['post_parent'] );
$data['post_title'] = $posttitle;
$data['post_name'] = $posttitle;
return $data;
}
}
add_filter( 'wp_insert_attachment_data', 'wpq_insert_attachment_data', 10, 2 );
您还可以添加您的页面 slug 而不是 id,例如:
if ( is_page('slug'))
或排除页面
if ( !is_page('slug'))
if ( !is_page(array('slug-1', 'slug-2') )
看来您只需要调整您的条件语句:
if (!is_single() ) {
应该变成:
if (!is_page() ) {
在您的语句中使用 is_singular 来定位特定的 post 类型。
也可以做一个数组来包含或排除。
If (! is_singular()) ..... or.....
(! is_singular(array('page','food',foo')))
然后它只会 运行 单曲,无论您定位的 post 类型。