标签: wordpress-hook

Ubuntu上的Wordpress安装没有FTP访问的插件

我运行自己的Web服务器进行开发,并在其上安装了一个WordPress实例.当我尝试从管理界面向此实例添加插件时,WordPress会要求FTP访问.

我不使用FTP,并且将来也没有计划这样做.我知道我可以在WordPress中更改一些配置,这样我就可以在没有FTP的情况下上传.我应该配置什么才能实现这一目标?

ftp wordpress wordpress-hook

16
推荐指数
2
解决办法
9659
查看次数

WP/WC缺席WC功能的争论

我安装了WooCommerce的Wordpress,我正在尝试使用此代码登录管理员用户:

if ( !is_user_logged_in() ) {
    $user = get_userdatabylogin( $username ); // get_user_by('login', $user_login);
    $id = $user->ID;

    wp_set_current_user( $id, $user->user_login );
    wp_set_auth_cookie( $id );
    do_action( 'wp_login', $user->user_login );
}
Run Code Online (Sandbox Code Playgroud)

但它返回此错误消息:

警告:在第1516行的/home/i/n/username/public_html/shop/wp-content/plugins/woocommerce/includes/wc-core-functions.php中缺少wc_maybe_store_user_agent()的参数2

我试过在网上四处看看但似乎没有人遇到这个问题.

php wordpress woocommerce wordpress-hook

9
推荐指数
2
解决办法
1204
查看次数

在按钮单击上调用函数,获取URL

我是wordpress的新手.我试图myprefix_edit_user_cb()在用户点击编辑后调用函数来获取编辑表单.

function getdata()
{    
    $blogusers = get_users();
    foreach ( $blogusers as $user ) {
        echo '<span>' . esc_html( $user->user_email ) . '</span>';


        $editUrl = ??

        echo  "<a href='".$editUrl. "'>Edit User</a>"; 

        echo '<br>';
    }   
}
Run Code Online (Sandbox Code Playgroud)

功能:

 function myprefix_edit_user_cb(){    
     $user = intval($_REQUEST['user']);

    echo '
                <form action="' . $_SERVER['REQUEST_URI'] . '" method="post">
                <label>Username</label>
                <input type="text" value="' .$user->user_login  . '"
                <input type="submit">
        ';
}
Run Code Online (Sandbox Code Playgroud)

php wordpress wordpress-hook

9
推荐指数
1
解决办法
726
查看次数

在WordPress中加入"保存自定义分类法",如"save_post"

当编辑/保存自定义分类术语(事先不知道)(最好是自定义分类术语子术语)时,是否可以挂钩函数,就像我们在保存帖子或页面时挂钩到save_post的方式一样?

保存分类术语时我想做什么:

function generate_pdf($slug) {
    wp_remote_get( etc... );
}
Run Code Online (Sandbox Code Playgroud)

编辑:

似乎编辑_ $ {taxonomy}是我需要的东西,但我似乎无法将$ term_slug推送到函数中:

function pdf_save_magazine($term_id, $tt_id, $taxonomy) {
    $term = get_term($term_id, $tt_id);
    $term_slug = $term->slug;
    wp_remote_get(
        'http://url-that-saves-pdf.com/?print='.$term_slug,
         array(
             'blocking' => false,
             'timeout' => 1,
             'httpversion' => '1.1'
          )
    );
}
add_action( 'edit_auteur', 'pdf_save_magazine', $term_id, $tt_id, $taxonomy );
Run Code Online (Sandbox Code Playgroud)

php wordpress custom-taxonomy wordpress-hook

6
推荐指数
1
解决办法
4644
查看次数

WordPress 过滤器用于更改编辑帖子作者框中的作者列表

我想更改自定义帖子类型的编辑帖子页面上“作者选择”下拉列表中的用户列表。我可以使用过滤器挂钩吗?我无法找到任何有关过滤器挂钩的信息来满足我的要求。

该钩子(理论上)应该让我返回一个用户数组,这些用户将填充底部的选择框。我想这样做的原因是我可以根据不同帖子类型的角色有条件地过滤掉用户。作为管理员(或其他管理员),我不想在将用户设为作者之前检查用户是否具有特定角色。

代码示例:

add_filter('example_filter', 'my_custom_function');
function my_custom_function ( $users ){

    // Get users with role 'my_role' for post type 'my_post_type'
    if( 'my_post_type' == get_post_type() ){
        $users = get_users( ['role' => 'my_role'] );
    }

    // Get users with role 'other_role' for post type 'other_post_type'
    if( 'other_post_type' == get_post_type() ){
        $users = get_users( ['role' => 'other_role'] );
    }

    return $users;
}
Run Code Online (Sandbox Code Playgroud)

php wordpress custom-post-type wordpress-hook

6
推荐指数
1
解决办法
3131
查看次数

保存所有帖子数据和帖子元之后,哪个WordPress钩子会触发?

我有一个自定义帖子类型crm,保存或更新每个crm后都需要发送一封邮件。我为某些自定义元(例如主题,用户等)使用cmb2,我知道在我使用两个参数(id和post)调用时,在save_post保存后(根据WordPress Codex)钩子触发了,该帖子不包含更新值。这是我的代码:save_post

function send_mail_to_user($id, $post){
    $crm = $post;
    $user_email = array();
    if($crm->vc_all_vc == 'on'){
        $args = array('orderby' => 'display_name');
        $wp_user_query = new WP_User_Query($args);
        $authors = $wp_user_query->get_results();
        if (!empty($authors)) {
            foreach ($authors as $author) {
                array_push($user_email , $author->user_email );
            }
        } 
    }
    else{
        $to_users = $crm->vc_users;
        $to_program = $crm->vc_program;
        $to_group = $crm->vc_group;
        $to_excode = $crm->vc_ex_code;
        foreach ($to_users as $key => $value) {
            $user_data = get_userdata($value);
            array_push($user_email, $user_data->user_email);
        }
        foreach ($to_program as $key => $value) …
Run Code Online (Sandbox Code Playgroud)

php wordpress wordpress-hook cmb2

6
推荐指数
3
解决办法
1万
查看次数

WordPress:将内置JS转移到jQuery延迟后被解雇

为了遵循Google Page Insights的建议,我得到了“ JS渲染块”建议,该建议与jQuery主文件有关。

我的网站使用WordPress和一些插件。其中一个插件将其JS内联。因此,当我移动jQuery到页脚中进行加载时,或者使用“ defer”模式进行加载时,jQuery is not defined内联代码都会触发。

我试图找到一种全局解决方案来“捕获”所有内联脚本,并jQuery在文档末尾执行主文件后将其延迟。

我写了一个非常适合我的解决方案。对于我的特定情况,这是非常简单的解决方案,但是我无法将其作为过滤器the_content或小部件输出。我想使它成为一个全局解决方案,所以我不必担心任何地方会触发JS。

有什么想法使它起作用吗?到目前为止,这里是我针对此特定情况的代码,它通过短代码运行:

/* Get shortcode HTML */ 
$widget_shortcode = do_shortcode($shortcode);

/* Take out all scripts into an array */
$delayed_scripts = array();
preg_match_all('#<script(.*?)</script>#is', $widget_shortcode, $match);
foreach ($match as $val){
    $delayed_script = '<script '.$val[0].'</script>';
    array_push($delayed_scripts, $delayed_script);
}

/* Remove all scripts from HTML */
$widget_shortcode = preg_replace('#<script(.*?)</script>#is', '', $widget_shortcode);

/* Echo filtered HTML */
echo $widget_shortcode;
Run Code Online (Sandbox Code Playgroud)

并且在结束</body>标记之前:

foreach ($delayed_scripts …
Run Code Online (Sandbox Code Playgroud)

wordpress jquery pagespeed wordpress-hook

5
推荐指数
1
解决办法
601
查看次数

发布新帖子时(而不是更新发布的帖子时),wordpress钩是什么?

我想在新帖子首次发布时发送电子邮件(而不是在编辑时发送)

我试过了:

add_action('publish_post', 'postPublished');
Run Code Online (Sandbox Code Playgroud)

但是,当我更新已发布的帖子时,也会调用 postPublished 。我只想在首次发布文章时才将其称为。

问候

wordpress wordpress-hook

5
推荐指数
2
解决办法
3197
查看次数

根据自定义帖子类型匹配/查询自动填充结帐输入

我最近遇到了一个让我有点困惑的问题。在我的 WP 设置中,我有一个基本的 WooCommerce 解决方案(对于主题,我使用 Timber starter 主题来利用树枝模板)。除此之外,我正在使用名为“站点”的自定义帖子类型。站点代表建筑站点列表,不要与网站混淆。

Sites CPT 有 X 个高级自定义字段“字段”,以及标准的“标题”,ACF 字段是:

  • 采购订单编号 (po_number) ->字符串-> 必需/非空
  • 作业编号 (job_number) ->字符串-> 必需/非空
  • 街道地址 (street_address) ->字符串-> 必填/非空
  • 办公室名称 (office_name) ->字符串-> 必填/非空
  • Town(城镇)->字符串-> 必需/不为空
  • 县(县)->字符串-> 可选/可为空
  • 邮政编码 (post_code) ->字符串-> 必需/非空

因此,管理员方面的上述大部分内容都是必需的,因此我们知道数据将存在。

我遇到的问题是,在结帐时,我们想要与上述字段匹配的字段,以及电子邮件地址字段(必填)和联系电话字段(必填)。

目的是,当客户输入他们的“职位编号”并点击“查找”按钮时,会启动一个查询,将该职位编号与自定义帖子类型上的职位编号字段进行匹配,如果找到匹配项,该记录中的其他字段填写到结帐表单的其余部分中。


在尝试解决方案方面,我唯一能做的就是匹配和返回数据的数据库查询,但我对 WP 整体还是相当陌生,而且似乎有一些概念,例如 Ajax 具有特定用例在 WP 中,DB 结构似乎很复杂,所以我想我会在这里问一下,看看是否有人有解决方案。

到目前为止,没有代码可以显示,否则我会显示,并且就 WooCommerce 模板而言,它们都是标准的并且没有被修改。

总结一下,目标是:

客户去结帐 -> 输入他们已知的工作编号并点击“查找”-> 运行某种查询以将该工作编号与工作编号的 CPT ACF 字段进行匹配 -> 如果找到匹配项,则返回这些字段并使用该数据填写 Woo Checkout …

php wordpress woocommerce wordpress-hook hook-woocommerce

5
推荐指数
1
解决办法
609
查看次数

更改自定义帖子类型的WP管理员帖子状态过滤器

如何更改/重命名WP自定义帖子类型页面顶部的帖子状态文本

全部| 发布| 预定| 草案

php wordpress wordpress-hook

4
推荐指数
1
解决办法
2557
查看次数