WordPress extrahiert Inhalt und Kategorieinhalt

Ich habe einen Kunden, der einen Lernkurs mit WordPress aufgebaut hat. Der Lernkurs hat 8 Kategorien und innerhalb jeder Kategorie sind 20-50 Beiträge in der Reihenfolge zugewiesen.

Ich versuche, einen Weg zu finden, alle Beiträge in der Reihenfolge aus der database nur aus den 8 spezifischen Kategorien zu extrahieren. Ich möchte nicht alle Seiten und Beiträge, die nicht Teil des Lernkurses sind, da der Kurs nur ein Teil der Website ist.

Das Endziel ist die Möglichkeit, den Inhalt zu übernehmen und zu einer benutzerdefinierten Lösung für den Kurs zu migrieren.

Was ich wirklich ziehen müsste, wäre post_title, post_slug, post_content, category_id, order_id (bezweifle, dass es sich um die Namen der Tabellenzeilen handelt, bekomme aber die Idee, was ich zu ziehen versuche).

Ich schaute mich um und sah die Beziehung, um alle Beiträge mit ähnlichen Kategorien zu erhalten.

SELECT p.*, t.* FROM wp_posts p LEFT JOIN wp_term_relationships rel ON rel.object_id = p.ID LEFT JOIN wp_term_taxonomy tax ON tax.term_taxonomy_id = rel.term_taxonomy_id LEFT JOIN wp_terms t ON t.term_id = tax.term_id 

Aber nicht sicher, wie man es eingrenzen kann, da das alles ergreift. Ich bin Novize bei WordPress und fange an, in die Docs zu graben, um zu sehen, was ich herausfinden kann, aber ich denke, dass es lange dauern wird, um zu bekommen, was ich brauche. Ich denke, es könnte jemand da draußen sein, der einen einfachen Tweak kennt, um mir zu helfen und mir viel Zeit zu sparen. Schätze jede Hilfe. Vielen Dank

Solutions Collecting From Web of "WordPress extrahiert Inhalt und Kategorieinhalt"

Dies wird einen CSV-Export ausgeben von:

  1. Beitragstitel
  2. Beitrags-Schnecke
  3. Inhalt posten
  4. Auftragsnummer
  5. Kategorie ID

Pop in einer Datei in der Wurzel Ihrer WordPress-Installation (zB export.php ), stellen Sie sicher, dass Sie die $category_ids mit den IDs aller spezifischen Kategorien ändern.

 < ?php require './wp-load.php'; header( 'Content-Type: text/csv; charset=' . get_bloginfo( 'charset' ) ); header( 'Content-Disposition: attachment; filename=posts.csv' ); $category_tax = 'category'; // Change if different category taxonomy $category_ids = [ 1, 2, 3, 4, 5, 6, 7, 8 ]; // The 8 specific category IDs $query = new WP_Query; $paged = 1; $fopen = fopen( 'php://output', 'w' ); while ( true ) { $query->query([ 'post_type' => 'post', // Change if different post type 'post_status' => [ 'publish', 'private' ], 'posts_per_page' => 50, 'no_found_rows' => true, 'paged' => $paged++, 'tax_query' => [[ 'taxonomy' => $category_tax, 'terms' => $category_ids, ]], ]); if ( ! $query->have_posts() ) break; foreach ( $query->posts as $post ) { $cats = []; if ( $terms = get_the_terms( $post, $category_tax ) ) { foreach ( $terms as $term ) { if ( in_array( $term->term_id, $category_ids ) ) $cats[] = $term->term_id; } } fputcsv( $fopen, [ $post->post_title, $post->post_name, // Slug - use get_page_uri( $post ) instead if posts are hierarchical $post->post_content, // Use apply_filters( 'the_content', $post->post_content ) if you want HTML-rendered frontend output $post->menu_order, // Order ID implode( ':', $cats ), // Colon-separated list of the category IDs (if more than one) ]); } }