如何导出带有特色图片的帖子

时间:2016-08-26 作者:Baba

如何仅导出具有特色图像的帖子?

我只想导出帖子。

1 个回复
SO网友:birgire

没有一种简单的方法可以修改在下运行的导出查询/wp-admin/export.php.

它不使用WP_Query 或者get_posts() 包装器,而它当前使用此查询:

$post_ids = $wpdb->get_col( "SELECT ID FROM {$wpdb->posts} $join WHERE $where" );
虽然可以通过export_args 滤器

在票证中#28146 建议使用get_posts() 相反,但它当前未处于活动状态。

解决方法hack 要仅导出带有特色图像的帖子,请执行以下操作:

export items with featured image

以下是此类插件的主要部分:

步骤#1

首先,我们为过滤器的设置添加HTML:

/**
 * Custom Export Filters
 */
add_action( \'export_filters\', function() { 
?>
  <p><ul class="wpse-export-filters">
      <li>
        <label><?php esc_html_e( \'With a featured image:\', \'mydomain\' ); ?></label>
        <input type="checkbox" name="wpse_with_featured_image" value="1">
      </li>
    </ul></p>
<?php 
} );

步骤#2export_wp 要修改导出过程,请执行以下操作:

/**
 * Modify the export query
 */
add_action( \'export_wp\', function( Array $args )
{   
    // User input
    $with_featured_image = filter_input( INPUT_GET, \'wpse_with_featured_image\' );

    // Check if we should activate our custom filter
    if( wp_validate_boolean( $with_featured_image ) )
        add_filter( \'query\', \'wpse_modify_export\' );

    return $args;
} );
其中wpse_modify_export() 回调定义为:

/**
 * Inject sub-query to find posts with featured image
 */
function wpse_modify_export( $query ) 
{
    global $wpdb;

    // Target the next posts query
    if( false === strpos( $query, "SELECT ID FROM {$wpdb->posts}" ) )
        return $query;

    // Remove filter callback
    remove_filter( current_filter(), __FUNCTION__ );

    // Inject sub-query to find posts with featured image
    $sql = " {$wpdb->posts}.ID IN ( SELECT DISTINCT post_id 
           FROM {$wpdb->postmeta} pm WHERE pm.meta_key = \'_thumbnail_id\' ) AND ";

    return str_replace( \' WHERE \', \' WHERE \' . $sql, $query );          
}
希望您可以根据自己的需要进行调整。

相关推荐

如何修改WP_INCLUDE/BLOCKS/LATEST_posts.php

我是WordPress开发的初学者,希望得到一些帮助。我在一个简单的WordPress网站上工作。基本上,用户希望在主页上显示最新的帖子。我使用了最新帖子块,并将其设置为显示整个帖子内容,现在用户不希望帖子标题链接到单个帖子页面(因为帖子的内容显示在主页上)。如何安全地修改模板文件,使其像h2标记一样使用,而不是在主题中使用的href标记。我知道您可以创建子主题并修改wp_content 文件,但我不确定如何处理中的文件wp_include. 我读到一些关于修改functions.php 但我不确定,如果