it-swarm.com.de

if (is_page (** PAGE ID **)) funktioniert nicht

Ich folge diesem Tutorial beim Hinzufügen von Google Content Experiments-Code zu header.php.

Ich habe den folgenden Code zu header.php hinzugefügt:

<?php if (is_page('346') ):?>
    <!-- Google Analytics Content Experiment code -->
        ...
    <!-- End of Google Analytics Content Experiment code -->
<?php endif; ?>

Der Content-Experiment-Code für das Front-End wurde nicht erstellt. Ich habe es versucht:

<?php if (is_page(346) ):?>
    <!-- Google Analytics Content Experiment code -->
        ...
    <!-- End of Google Analytics Content Experiment code -->
<?php endif; ?>

Das hat auch nicht funktioniert.

Können Sie sehen, warum dieser Code nicht funktioniert? Vielen Dank.

2
Steve

sie können dies für verwenden

global $post;

<?php if( $post->ID == 346) { ?>

      <!-- do your stuff here -->

<?php } ?>

sie können dies überall entweder in der Kopfzeile oder anderswo verwenden.

7
Waqas Shakeel

Eine einfachere Lösung besteht darin, die title oder die slug als Argument in is_page() zu übergeben. Sie haben keine Probleme, wenn Sie diese Seite auf einem anderen Server duplizieren.

<?php
if (is_page( 'Page Title' ) ):
  # Do your stuff
endif;
?>
3
RRikesh

versuche is_single zu benutzen ($ post)

in deinem Fall sollte is_single (346) oder is_single ('346') funktionieren

mehr hier

1
Huseyn

Hooks wie init funktionieren überhaupt nicht .

Sie müssen mindestens parse_query einbinden.

Dies ist der Teil des Codes für die Funktion is_page in WordPress Core:

 * @param int|string|array $page Optional. Page ID, title, slug, path, or array of such. Default empty.
 * @return bool Whether the query is for an existing single page.
 */
public function is_page( $page = '' ) {
    if ( !$this->is_page )
        return false;

    if ( empty( $page ) )
        return true;

    $page_obj = $this->get_queried_object();

    $page = array_map( 'strval', (array) $page );

    if ( in_array( (string) $page_obj->ID, $page ) ) {
        return true;
    } elseif ( in_array( $page_obj->post_title, $page ) ) {
        return true;
    } elseif ( in_array( $page_obj->post_name, $page ) ) {
        return true;
    }

Wie Sie sehen können, funktioniert alles wie folgt:

is_page(198); # (int) ID
is_page('198'); # (string) ID
is_page('Some Title'); (string) Title, case-sensitive
is_page('some-title'); (string) Slug

Aber es muss mindestens in parse_query oder einem anderen Hook danach eingebunden sein. Die Reihenfolge der WordPress-Hooks finden Sie hier: https://codex.wordpress.org/Plugin_API/Action_Reference

1

Bitte versuchen Sie, '' (einfache Anführungszeichen) von der ID-Nummer zu entfernen, und es wird funktionieren:

is_page(34)
0