2

我写了一个在本地主机上运行良好的 wp 插件。它创建子主题目录并在那里复制 home.php。但“主页”选项卡显示来自父主题的旧内容。只有当我将 home.php 重命名为 index.php 时它才有效。这是我的家.php

<?php
get_header(); ?>

    <div id="container">
        <div id="content" role="main">

        </div><!-- #content -->
    </div><!-- #container -->

另外我在 /js 文件夹中有 script1.js 文件,它应该向块添加一个文本框,但它没有。我像这样嵌入脚本:

define('jsdir',plugin_dir_url(__FILE__).'js');
wp_enqueue_script('dk_js_myplugin',jsdir.'/script1.js',array('jquery'));

但萤火虫没有在页面上显示它。使用 xampp 在本地安装 wordpress 时不存在这两个问题 感谢您的宝贵时间,非常感谢您的帮助!

4

5 回答 5

1
define( 'jsdir', WP_PLUGIN_URL . '/' . dirname( plugin_basename( __FILE__ )) . '/js' );

表达式dirname( plugin_basename( __FILE__ ))返回目录中的插件位置wp-content/plugins。阅读plugin_basename()。常量WP_PLUGIN_URL返回插件目录的绝对路径。

在您的插件代码中尝试:

<?php

var_dump( WP_PLUGIN_URL );
var_dump( dirname( plugin_basename( __FILE__ )));

// output should be like this:
string(36) "http://domain.tld/wp-content/plugins" 
string(9) "my-plugin"

用于添加脚本的初始化函数:

add_action( 'init', 'plugin_register_css_js' );
function plugin_register_css_js()
{
    global $wp;
    $current_url = add_query_arg( $wp->query_string, '', home_url( $wp->request ) );

    if( $current_url == 'mypage' )
    {
        wp_enqueue_script( 'js', $jsdir . '/script1.js', array( 'jquery' ));
    }
}
于 2012-10-02T15:14:34.293 回答
0

您的浏览器不会“调用”script1.js 文件(见附图)在此处输入图像描述

我建议您重新检查您的模块,以便确保脚本已加载到标签中。

于 2012-10-03T07:29:19.370 回答
0

有时,如果您可以通过 FTP 访问(我假设您这样做),那么它是权限问题,然后尝试使用权限。它也可能有助于打开 php 错误。

ini_set('error_reporting', E_ALL );
ini_set('display_errors', 1 );
于 2012-10-02T15:16:27.710 回答
0

您能否通过 Firebug 检查它是否在您的远程服务器上加载了 script1.js 文件(不会产生 404 错误)?

于 2012-10-02T15:16:29.210 回答
0

您是否进行了以下操作:

function load_dk_scripts() {
    wp_enqueue_script(
        'dk_js_myplugin',
        'http://david.onenonly.info/wp-content/plugi‌​ns/childtheme/js/script1.js',
        array('jquery')
    );
}
add_action('wp_enqueue_scripts', 'load_dk_scripts');
于 2012-10-04T05:50:27.913 回答