Wie setze ich einen Permalink, um alle benutzerdefinierten Kinderbeiträge mit Elternbeiträgen in WordPress abzurufen?

Lesezeit: 4 Minuten

Benutzer-Avatar
hu7sy

Ich erstelle eine Eltern-Kind-Beziehung für benutzerdefinierte Beitragstypen.

Allgemein: www.example.com/parent/parent_post

Beispiel: www.example.com/projects/project-one

In der obigen URL ist die übergeordnete URL ein benutzerdefinierter Beitragstyp und der übergeordnete Beitrag ist sein einzelner Beitrag. Ich kann Eltern alle Beiträge bzw. einzelne Beiträge als archive-parent.php und single-parent.php anzeigen.

Wie ich bereits erwähnt habe, erstelle ich eine Eltern-Kind-Beziehung und einen untergeordneten Beitrag, der „post_parent“ als Eltern-ID speichert.

Allgemein: www.example.com/child/parent_post/child_post

Beispiel: www.example.com/project_article/project-one/first-article

Und für bestimmte untergeordnete Posts ist die URL wie oben.

Der folgende Code dient zum Abrufen bestimmter untergeordneter Posts. Und es funktioniert einwandfrei.

function my_add_rewrite_rules() {
    add_rewrite_tag('%child%', '([^/]+)', 'child=');
    add_permastruct('child', 'child/%parent%/%child%', false);
    add_rewrite_rule('^child/([^/]+)/([^/]+)/?','index.php?child=$matches[2]','top');
}
add_action( 'init', 'my_add_rewrite_rules' );

function my_permalinks($permalink, $post, $leavename) {
    $post_id = $post->ID;
    if($post->post_type != 'child' || empty($permalink) || in_array($post->post_status, array('draft', 'pending', 'auto-draft')))
        return $permalink;
    $parent = $post->post_parent;
    $parent_post = get_post( $parent );
    $permalink = str_replace('%parent%', $parent_post->post_name, $permalink);
    return $permalink;
}
add_filter('post_type_link', 'my_permalinks', 10, 3);

Generisch: www.example.com/child/parent_post

Beispiel: www.example.com/project_article/project-one

Jetzt möchte ich alle untergeordneten Posts mit übergeordneten Posts, wie in der obigen URL.

Ich bin neu in Word-Press. Bitte führen.

  • Ihre lokalen Server-Links funktionieren hier nicht.

    – Nirmohi

    3. September 2018 um 7:22 Uhr

  • Sie können hier keine Localhost-Links posten.

    – Kobbin

    3. September 2018 um 7:22 Uhr

  • Etwas verwirrt – haben Sie einen einzelnen benutzerdefinierten Beitragstyp mit dem Namen child mit Eltern-Kind-Hierarchie und Sie möchten alle untergeordneten Beiträge auflisten, wenn Sie auf eine übergeordnete Seite zugreifen?

    – WordPress auslagern

    7. September 2018 um 10:07 Uhr


  • Ja, Sie haben meine Frage fast bekommen @OutsourceWordPress Ich möchte alle untergeordneten Beiträge, die sich auf Alleinerziehende beziehen, und ich speichere parent_post (id) in untergeordneten Beiträgen

    – hu7sy

    7. September 2018 um 10:28 Uhr

Benutzer-Avatar
WordPress auslagern

Vorausgesetzt parent als übergeordneter benutzerdefinierter Beitragstyp, child als untergeordneter benutzerdefinierter Beitragstyp und hoffen, dass Sie URLs wie untergeordnete Beiträge benötigen http://www.example.com/parent/parent-post/child/child-post Anstatt von http://www.example.com/child/parent-post/child-post.

Ändere dein my_add_rewrite_rules() Funktion zu folgendem.

function my_add_rewrite_rules() {
    add_rewrite_tag('%child%', '([^/]+)', 'child=');
    add_permastruct('child', '/parent/%parent%/child/%child%', false);
    add_rewrite_rule('^parent/([^/]+)/child/([^/]+)/?','index.php?child=$matches[2]','top');
}
add_action( 'init', 'my_add_rewrite_rules' );

Nach dem Update nicht vergessen Permalinks löschen über ‘Einstellungen > Permalinks’.

  • Ich hatte bereits {single-custom-post-type-name}.php erstellt, wenn Sie diese URL sehen: Beispiel: www.example.com/project_article/project-one/first-article und Code: add_rewrite_rule(‘^child/ ([^/]+)/([^/]+)/?’,’index.php?child=$matches[2]’,’oben’); Bitte lesen Sie meine Frage noch einmal, danke im Voraus und wenn Sie sich diese URL ansehen 1fix.io/blog/2016/02/05/parent-from-another-cpt Sie können Beiträge zu einzelnen Kindern erhalten, die sich auf alleinerziehende Eltern beziehen, und Sie können nicht alle Beiträge zu Kindern erhalten, die sich auf alleinerziehende Eltern beziehen.

    – hu7sy

    7. September 2018 um 11:25 Uhr


  • Oh, verwenden Sie 2 benutzerdefinierte Beitragstypen und verlinken Beiträge des zweiten Beitragstyps als untergeordnete Elemente des ersten Beitragstyps?

    – WordPress auslagern

    7. September 2018 um 11:58 Uhr

  • Wo sagen Sie, dass alle untergeordneten Beiträge nicht aufgelistet werden – in der Metabox „Eltern“?

    – WordPress auslagern

    7. September 2018 um 12:21 Uhr

  • Sehen Sie sich diese URL an: Beispiel: www.example.com/project_article/project-one/first-article. project-one ist ein übergeordneter benutzerdefinierter Beitragstyp einzelner Beitrag und first-article ist ein untergeordnetes Element von project-one des benutzerdefinierten Beitragstyps single post. project-one post hat jetzt mehrere untergeordnete Beiträge, die ich möchte, wenn ich die URL verwende: www.example.com/project_article /project-one ruft dann alle untergeordneten Beiträge ab, die sich auf den benutzerdefinierten Beitrag von project-one beziehen

    – hu7sy

    7. September 2018 um 12:37 Uhr

  • Wenn ich single-parent.php hinzufüge, werden alle Beiträge zurückgegeben, die sich auf den übergeordneten Beitragstyp beziehen, nicht auf das Kind.

    – hu7sy

    7. September 2018 um 12:40 Uhr

1385290cookie-checkWie setze ich einen Permalink, um alle benutzerdefinierten Kinderbeiträge mit Elternbeiträgen in WordPress abzurufen?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy