wake-up-neo.net

Wie kann ich das Jetpack-Abonnementformular auf einer Seite anzeigen?

Im Jetpack-Plugin kann das Abonnement-Modul wie folgt in Ihr Blog aufgenommen werden:

Um das Abonnement-Widget zu verwenden, gehen Sie zu Darstellung → Widgets. Ziehen Sie das Widget mit der Bezeichnung "Blog-Abonnements (Jetpack)" in eine Ihrer Seitenleisten und konfigurieren Sie es.

Ich bin daran interessiert, das Anmeldeformular auf einer Seite meiner Website im Hauptabschnitt der Seite einzufügen. Gibt es eine Art Shortcode oder eine andere Möglichkeit, mit der ich das Anmeldeformular problemlos in meinen Seiteninhalt aufnehmen kann? Oder muss ich dazu eine neue Seitenleiste definieren, das Abonnement-Widget in die Seitenleiste einfügen und eine benutzerdefinierte Vorlage erstellen, die diese neue Seitenleiste auf dieser Seite enthält (eine recht umständliche Übung)?

2
Yaakov Ellis

Sie können den Seitenleistenschritt überspringen, indem Sie in der Vorlage the_widget() function verwenden, um die gewünschte Instanz des Widgets anzuzeigen.

2
Rarst

Im Moment bietet Jetpack nur die Möglichkeit, Abonnements als Sidebar-Widget einzubetten. Das Registrieren einer neuen Seitenleiste ist eine bessere Idee, und dies dauert nicht länger als ein paar Sekunden.

Schritt 1 - Registrieren Sie eine Seitenleiste für das Jetpack

Fügen Sie diesen Code einfach irgendwo in die functions.php-Datei Ihres Themas ein.

register_sidebar( array(
    'name' => 'JetPack in page',
    'id' => 'jetpack-in-page',
    'before_widget' => '<div id="jetpack">',
    'after_widget' => '</div>',
    'before_title' => '<h3>',
    'after_title' => '</h3>'
) );

Schritt 2 - Wo soll das Formular erscheinen?

Platzieren Sie nun den folgenden Code an der Stelle, an der Sie das Formular haben möchten. Sie können diesen Code an einer beliebigen Stelle des Themas unter der <?php the_content(); ?> platzieren. Dadurch wird nur der Inhalt Ihrer Seite/Ihres Beitrags angezeigt.

<?php dynamic_sidebar( 'jetpack-in-page' ); ?>

Schritt 3 - Fertig!

Ziehen Sie nun das Widget per Drag & Drop in die Seitenleiste von JetPack in page und das Formular wird auf der Seite angezeigt. Das Widget wurde jedoch speziell für Seitenleisten entwickelt, daher müssen Sie möglicherweise ein paar Anpassungen vornehmen, damit es auf der gesamten Seite besser aussieht.

Referenz - register_sidebar(); (Wordpress Codex)

2
amit

Versuchen Sie Folgendes: (Kopieren Sie den folgenden Code und fügen Sie ihn in die Datei functions.php ein.)

// Get page url >> webcheatsheet.com/php/get_current_page_url.php
function itp_current_page_url() {
$page_url = 'http';
if( isset($_SERVER["HTTPS"]) && $_SERVER["HTTPS"] == "on" ) { $page_url .= "s" ;}
$page_url .= "://";
if( $_SERVER["SERVER_PORT"] != "80" ) {
    $page_url .=         $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
} else {
    $page_url .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
}

return $page_url;
} // end itp_current_page_url

// Jetpack subscription form shortcode by http://www.itechplus.org
function itp_jetpack_subscription_form_shortcode( $atts, $content = '', $code = '' ) {
extract( shortcode_atts( array(
    'title' => 'Email Subscription',
    'desc' => 'Enter your email address to subscribe to this website and receive notifications of new articles by email.',
    'button' => 'Subscribe',
    'placeholder' => 'Email Address',
), $atts ) );

global $post;

// Build current page url
if( is_home() || is_front_page() ) {
    $url = home_url('/');
} elseif( is_singular() ) {
    $url = get_permalink($post->ID);
} else {
    $url = itp_current_page_url();
}

$jetpack_subscribe = '';

// Build jetpack subscription form
if( $title != '' ) {
    $jetpack_subscribe .= '<h3 class="widget-title">
        <label for="subscribe-field">' . $title . '</label>
    </h3>';
}
$jetpack_subscribe .= '<form id="subscribe-blog-blog_subscription-' . time() . '" accept-charset="' . get_bloginfo( 'charset' ) . '" method="post" action="">';
    if( $desc != '' ) {
        $jetpack_subscribe .= '<p>' . $desc . '</p>';
    }
    $jetpack_subscribe .= '<p>
        <input id="subscribe-field" class="input email" type="email" placeholder="'. $placeholder .'" onblur="if( this.value == \'\' ) { this.value = \'' . $placeholder . '\'; }" onclick="if ( this.value == \'' . $placeholder . '\' ) { this.value = \'\'; }" value="' . $placeholder . '" style="width: 95%; padding: 1px 2px" name="email" />
    </p>
    <p>
        <input type="hidden" value="subscribe" name="action" />
        <input type="hidden" value="' . $url . '" name="source" />
        <input type="hidden" value="widget" name="sub-type">
        <input type="hidden" value="blog_subscription-' . time() . '" name="redirect_fragment" />
        <input type="submit" class="input subbmit" name="jetpack_subscriptions_widget" value="' . $button . '" />
    </p>
</form>';

return $jetpack_subscribe;
}
add_shortcode( 'itp_email_subscription', 'itp_jetpack_subscription_form_shortcode' );

Wenden Sie bei installiertem und aktiviertem Jetpack den Shortcode auf eine beliebige Seite oder in ein beliebiges Text-Widget an.

[itp_email_subscription title="Some Title" desc="Some description here" placeholder="Placeholder" button="Button"]

Erledigt! Nicht getestet. Lass es mich wissen, wenn es Fehler gibt. Viel Spaß beim Programmieren :-)

0