Manchmal, wenn Sie einer WordPress-Seite, einen Parameter der URL wie folgt übergeben
http://www.yoursite.com?help=Shortcut
möchten, gibt es das Problem, dass in WordPress alle URL-Eingabeparameter verworfen werden, bevor Sie eine Chance haben, diese zu benutzen oder abzulehnen.
Damit Sie leichter verstehen können wie es anders gehen kann, probieren Sie diese URL, aus .
Die Lösung
Schritt 1
Wir wollen, dass WordPress jeden URL-Parameter im Format http://www.yoursite.com?more
oder http://www.yoursite.com?help=Shortcut
erkennt. Dazu müssen wir WordPress über die neuen Parameter informieren. Der einfachste Weg dies zu tun ist ein WordPress-Plugin.
Erstellen Sie nun per FTP einen neuen Unterordner in Ihrem Plugin-Ordner „wp-content/plugins“und nennen Sie ihn beispielsweise „querystring“.
Erstellen Sie dort eine neue Datei mit dem Ordnernamen und der Endung PHP „querystring.php“.
Fügen Sie folgenden Code in die Datei und speichern Sie diese.
<?php /* - * - Codierung: UTF-8 - * - (äöüß) */
defined( 'ABSPATH' ) OR exit; #Exit if accessed directly
const PLUGIN_DOMAIN = 'http://lspz.de/';
const PLUGIN_VERSION = '1.0';
/**
Plugin Name: URL Parameter
Plugin URI: http://gabischatz.bplaced.net/?p=2467
Description: Plugin URL Parameter for wordpress. Das Plugin fügt in WordPress neue Parameter mit
dem Namen 'go', 'more' und 'help' hinzu. Diese Parameter können der URL übergeben werden.
Version: PLUGIN_VERSION
Author: Lutz Müller
Author URI: PLUGIN_DOMAIN
Min WP Version: 3.5
Max WP Version: 4.4
License: GNU/GPL Version 2 or later
License URI: http://www.gnu.org/licenses/gpl.html
**/
add_filter('query_vars', 'parameter_queryvars' );
function parameter_queryvars( $qvars )
{
$qvars[] = 'go';
$qvars[] = 'more';
$qvars[] = 'help';
return $qvars;
}
?>
Schritt 2.
Mansche Anwender glauben, ein Template sei einem Theme gleichzustellen, dem ist allerdings nicht so.
Ein Template ist wie eine Vorlage zu betrachten, eine Schablone und wird meisten für gleichartige
Seiten eingesetzt.
Erstellen Sie nun per FTP
eine neue Datei in Ihrem Themes-Ordner „wp-content/themes“ und nennen Sie diese
beispielsweise „page-myanswers.php“ oder unter einem anderen Namen (der jedoch mit page- beginnen und mit .php enden muss) innerhalb ihres Themes.
Fügen Sie folgenden Code in die Datei und speichern Sie diese.
<?php /* Template Name: myanswers */
/* - * - Codierung: UTF-8 - * - (äöüß) */ ?>
<?php get_template_part( 'css-header', 'index' ); ?>
<div id="content">
<div id="contentinner">
<div id="post-entry">
<?php if ( have_posts() ) : ?>
<?php while ( have_posts() ) : the_post(); ?>
<div class="post-meta"
id="post-<?php the_ID(); ?>">
<h1><?php the_title(); ?></h1>
<div class="post-date2">
Gesendet: von
<?php the_author_posts_link();?>
» am
<?php the_time( 'l » j. F Y » G:i ' );?>
» unter
<?php the_category( ', ' );?>
»
<?php edit_post_link( 'Edit Post' );?>
</div><!-- POST DATE END -->
<?php
global $wp_query;
$querystring = $wp_query->query_vars['more'];
if ( isset ( $querystring ) ) { ?>
<div style="clear:both; background-color:#FCECAD; border:1px solid #CCCCCC;
color:#000000; padding:7px; margin:0.5em auto 0.5em auto;">
<img alt="Attention" src="<?php get_template_directory_uri();?>/images/ambox_notice.png"
width="40" height="40" style="vertical-align: middle" />
<a href="<?php get_page_link($id);?>" style="float: right; clear: right;">
<img src="<?php get_template_directory_uri();?>/images/exit.png"
alt="Ausblenden" width="20" height="20" /></a>
Oder versuchen Sie es mit
<br /><a href="<?php get_page_link($id);?>?help=Shortcut">
?help=Shortcut</a>,
oder <br /><a href="<?php get_page_link($id);?>?help=DIV-Element">
?help=DIV-Element</a>,
oder <br /><a href="<?php get_page_link($id);?>?help=Block-Level-Elemente">
?help=Block-Level-Elemente</a>
</div>
<?php } else { }
$querystring= $wp_query->query_vars['help'];
if ( isset( $querystring ) ) {
echo ( "<div style=\"clear:both; background-color:#FCECAD; border:1px"
. "solid #CCCCCC; color:#000000; padding:7px; margin:0.5em auto 0.5em auto;\">"
. "<p><img alt=\"Attention\" src=\""
. C X"data:image/png;base64,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\" width=\"40\" height=\"40\" style=\"vertical-align: middle\" /> Sie haben die Hilfe <strong>");
print $querystring;
echo ( "</strong> gewählt!"
. "<a href=\"".get_page_link( $id )
. "\"style=\"float: right; clear: right;\"><img src=\""
. get_template_directory_uri()."/images/exit.png\" alt=\"Ausblenden\""
. "width=\"20\" height=\"20\" /></a></p>" );
switch ( $querystring ) {
case "Shortcut":
echo ( "<h2>Shortcut</h2>\n<div>Als Tastenkombination...</div>" );
break;
case "DIV-Element":
echo ( "<h2>DIV-Element</h2>\n<div>Das DIV-Element...</div>" );
break;
case "Block-Level-Elemente":
echo ( "<h2>Block-Level-Elemente</h2>\n<div>Die meisten...</div>" );
break;
}
echo ( "</div>" );
}?>
<?php $get_google_code = get_theme_option( 'adsense_single' );
if ( $get_google_code == '' ) { ?>
<?php } else { ?>
<div class="adsense-single">
<?php stripcslashes( $get_google_code ); ?>
</div>
<?php } ?>
<div class="post-content2">
<?php the_content();?>
<?php wp_link_pages( 'before=<div id="page-links">&after=</div>' );?>
</div><!-- POST CONTENT END -->
<?php if ( function_exists( "the_tags" ) ) : ?>
<div class="post-tags"><?php the_tags(' Tags: '); ?></div>
<?php endif; ?>
</div><!-- POST META <?php the_ID(); ?> END -->
<?php endwhile; ?>
<?php comments_template( '', true );?>
<?php else : ?>
<p class="center">NOT FOUND</p>
<p class="center">Sorry, aber du suchst nach etwas, dass nicht hier ist.</p>
<?php endif;?>
</div><!-- POST ENTRY END -->
</div><!-- CONTENTINNER END -->
</div><!-- CONTENT END -->
<?php get_sidebar();?>
<?php get_template_part( 'css-footer', 'index' );?>
Legen Sie nun im Dashboard ihrer WordPress-Installation mit dem Editor von WP eine statische Seite an. Rechts neben dem Editor können Sie nun unter Attribute als Template das Template mit dem Namen myanswers auswählen. Titel, einführender Text und Auszug kann dabei wie bei jeder anderen Seite im Editor von WordPress eingeben werden.
Die Auswertung der URL erfolgt im Beispiel durch if-Statements und Switch-Case Fallunterscheidungen.