我试图在Html h1标题中附上PHP变量。
代码很简单
$html .= "<a id='$id' class='$class' href='$href'>'$text</a>";
因此,在上面的代码中,$text
变量在浏览器中显示文本,但它将其显示为没有h1,p或span标记的链接。
我希望$text
标记包含在h1或p标记中。我试过了$html .= "<h1><a id='$id' class='$class' href='$href'>'$text</a></h1>";
但它在浏览器上显示随机文字。任何人都知道将它包含在h1标签中的正确语法是什么?
完整代码:(见第180行)
<?php
$wpa_version = '3.1';
# Pre-2.6 compatibility (from WP codex)
if ( ! defined( 'WP_CONTENT_URL' ) )
define( 'WP_CONTENT_URL', get_option( 'siteurl' ) . '/wp-content' );
if ( ! defined( 'WP_CONTENT_DIR' ) )
define( 'WP_CONTENT_DIR', ABSPATH . 'wp-content' );
if ( ! defined( 'WP_PLUGIN_URL' ) )
define( 'WP_PLUGIN_URL', WP_CONTENT_URL. '/plugins' );
if ( ! defined( 'WP_PLUGIN_DIR' ) )
define( 'WP_PLUGIN_DIR', WP_CONTENT_DIR . '/plugins' );
if ( ! defined( 'WPAUDIO_URL' ) )
define( 'WPAUDIO_URL', WP_PLUGIN_URL . '/wpaudio-mp3-player' );
## Get WPaudio's options from DB (or create them if not found)
$wpa_options = wpaOptions();
## WP handlers - add WPaudio processing at necessary events
# If it's not an admin page, get everything for the player
if ( !is_admin() ) {
# Calling scripts
add_action('init', 'wpaLibraries');
# Add header action to include CSS and JS vars
add_action('wp_head', 'wpaHead');
# Add shortcode for WPaudio player
add_shortcode('wpaudio', 'wpaShortcode');
# Add filter for shortcode in excerpt and widgets
add_filter('the_excerpt', 'do_shortcode');
add_filter('widget_text', 'do_shortcode');
# Add filter for non-shortcode substitutes (including excerpts and widgets)
if ($wpa_options['wpa_tag_audio']) {
add_filter('the_content', 'wpaFilter');
add_filter('the_excerpt', 'wpaFilter');
add_filter('widget_text', 'wpaFilter');
}
}
# Add admin
add_action('admin_menu', 'wpa_menu');
# Add track
if ($wpa_options['wpa_track_permalink']) add_action('publish_post', 'wpaPostNew');
function wpaOptions(){
## WPA options and defaults
global $wpa_version;
$wpa_options = Array(
'wpa_version' => $wpa_version,
'wpa_pref_link_mp3' => 0,
'wpa_tag_audio' => 0,
'wpa_track_permalink' => 1,
'wpa_style_text_font' => 'Sans-serif',
'wpa_style_text_size' => '18px',
'wpa_style_text_weight' => 'normal',
'wpa_style_text_letter_spacing' => 'normal',
'wpa_style_text_color' => 'inherit',
'wpa_style_link_color' => '#24f',
'wpa_style_link_hover_color' => '#02f',
'wpa_style_bar_base_bg' => '#eee',
'wpa_style_bar_load_bg' => '#ccc',
'wpa_style_bar_position_bg' => '#46f',
'wpa_style_sub_color' => '#aaa'
);
if ( $wpa_options_db = get_option( 'wpaudio_options' ) ) {
foreach ( $wpa_options as $key => $value ) {
if ( isset($wpa_options_db[$key]) ) {
$wpa_options[$key] = $wpa_options_db[$key];
}
}
}
else {
# Get legacy options and remove if they exist
if ( get_option('wpa_tag_audio') ) {
foreach ($wpa_options as $key => $value) {
$wpa_option_old_db = get_option($key);
if ( $wpa_option_old_db !== false && $wpa_option_old_db !== '' ) {
$wpa_options[$key] = $wpa_option_old_db;
}
delete_option($key);
}
}
# Create wpaudio_options
add_option('wpaudio_options', $wpa_options, '', 'no');
//update_option('wpaudio_options', $wpa_options);
}
return $wpa_options;
}
## Built-in libraries
function wpaLibraries(){
global $wpa_version;
//wp_deregister_script( 'jquery' );
//wp_register_script( 'jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/1.4.3/jquery.min.js', '1.4.3' );
if ( version_compare( get_bloginfo( 'version' ), '2.8', '>=' ) ) {
if ( WP_DEBUG === false ) {
wp_register_script( 'wpaudio', WPAUDIO_URL . '/wpaudio.min.js', Array('jquery'), $wpa_version, true );
}
else {
wp_register_script( 'wpaudio', WPAUDIO_URL . '/wpaudio.js', Array('jquery'), $wpa_version, true);
}
wp_enqueue_script( 'wpaudio' );
}
else {
wp_enqueue_script('jquery');
add_action('wp_footer', 'wpaFooterForOldVersions');
}
}
## WPaudio style, jQuery, SWFObject
function wpaHead(){
global $wpa_options;
# Put all styles into the _wpaudio settings object
$style = '';
foreach ( $wpa_options as $key => $value ) {
$exploded = explode('_', $key, 3);
if ( $exploded[1] == 'style' ) {
$style .= $exploded[2] . ":'$value',";
}
}
$style = trim( $style, ',' );
$style = '{' . $style . '}';
# Common JS
$wpa_pref_link_mp3 = ($wpa_options['wpa_pref_link_mp3']) ? 'true' : 'false';
$head = "<script type='text/javascript'>/* <![CDATA[ */ var _wpaudio = {url: '" . WPAUDIO_URL . "', enc: {}, convert_mp3_links: $wpa_pref_link_mp3, style: $style}; /* ]]> */</script>";
echo $head;
}
function wpaFooterForOldVersions() {
echo '<script type="text/javascript" src="' . WPAUDIO_URL . '/wpaudio.min.js"></script>';
}
# Used only for wpaudio shortcode tags
function wpaShortcode($atts){
# Convert shortcodes to WPaudio player depending on settings
extract(shortcode_atts(Array(
'url' => false,
'text' => false,
'dl' => true,
'autoplay' => false
), $atts));
# If no url, return with nothing
if (!$url)
return;
# Get player HTML and JS
return wpaLink($url, $text, $dl, $autoplay);
}
# Make WPA link
function wpaLink($url, $text = false, $dl = true, $autoplay = false) {
$id = uniqid('wpaudio-');
$class = 'wpaudio';
$html = '';
# Handle dl URLs and no dl players
if ($dl == '0') {
$js_url = wpaUnicode($url);
$href = '#';
$class .= ' wpaudio-nodl';
}
elseif (is_string($dl)) {
$js_url = wpaUnicode($url);
$href = $dl;
}
else {
$href = $url;
}
if (isset($js_url)) {
$class .= ' wpaudio-enc';
$html .= "<script type='text/javascript'>_wpaudio.enc['$id'] = '$js_url';</script>";
}
# Handle blank text
if (!$text) {
$text = basename($url);
$class .= ' wpaudio-readid3';
}
# Autoplay
if ($autoplay == '1') {
$class .= ' wpaudio-autoplay';
}
$html .= "<a id='$id' class='$class' href='$href'>$text</a>";
return $html;
}
# Used for audio tags
function wpaFilter($content){
## Convert audio tags and links to WPaudio player depending on settings
$tag_regex = '/\[audio:(.*?)\]/';
$tag_match = preg_match_all($tag_regex, $content, $tag_matches);
# Replace audio tags with player links
if ($tag_match){
foreach ($tag_matches[1] as $key => $value){
# This is one tag, first get parameters and URLs
$params = explode('|', $value);
$clips = Array('urls' => Array(), 'titles' => Array(), 'artists' => Array());
$clips['urls'] = explode(',', $params[0]);
# Process extra parameters if they exist
for ($i=1; $i<count($params); $i++) {
# Get the parameter name and value
$param = explode('=', $params[$i]);
if ($param[0] == 'titles' || $param[0] == 'artists')
$clips[$param[0]] = explode(',', $param[1]);
}
# Get player(s)
$player = '';
foreach ($clips['urls'] as $ukey => $uvalue) {
$text = '';
$text .= (isset($clips['artists'][$ukey])) ? $clips['artists'][$ukey] : '';
$text .= (isset($clips['artists'][$ukey]) && isset($clips['titles'][$ukey])) ? ' - ' : '';
$text .= (isset($clips['titles'][$ukey])) ? $clips['titles'][$ukey] : '';
if (!$text) $text = false;
$player .= wpaLink($uvalue, $text);
}
$content = str_replace($tag_matches[0][$key], $player, $content);
}
}
return $content;
}
# Convert string to unicode (to conceal mp3 URLs)
include 'php-utf8/utf8.inc';
function wpaUnicode($str){
$uni = utf8ToUnicode(utf8_encode($str));
$output = '';
foreach ($uni as $value){
$output .= '\u' . str_pad(dechex($value), 4, '0', STR_PAD_LEFT);
}
return $output;
}
## WP admin menu
function wpa_menu() {
add_options_page('WPaudio Options', 'WPaudio', 'switch_themes', __FILE__, 'wpa_menu_page');
}
function wpa_menu_page() {
global $wpa_options;
if ($_POST) {
# Checkboxes need values
$wpa_checkboxes = Array(
'wpa_pref_link_mp3',
'wpa_tag_audio',
'wpa_track_permalink'
);
foreach ($wpa_checkboxes as $value) {
$_POST[$value] = (isset($_POST[$value]) && $_POST[$value]) ? 1 : 0;
}
# Now process and save all options
foreach ($wpa_options as $key => $value) {
if (isset($_POST[$key]) && !is_null($_POST[$key]) && $_POST[$key] !== '')
$wpa_options[$key] = $_POST[$key];
}
update_option('wpaudio_options', $wpa_options);
}
wpaOptions();
答案 0 :(得分:1)
改变这个:
$html .= "<a id='$id' class='$class' href='$href'>'$text</a>";
要
$html .= "<a id=" . $id . " class=" . $class . "href=" . $href . ">" . $text . "</a>";
您需要使用与开始字符串相同的引号